home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / inter36c.zip / INTERRUP.J < prev    next >
Text File  |  1993-08-01  |  347KB  |  9,543 lines

  1. Interrupt List, part 10 of 10
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. --------I-68---------------------------------
  4. INT 68 - Sangoma CCPOP 3270 resident module
  5. SeeAlso: INT 67"Sangoma",INT 92"Sangoma"
  6. --------N-6801--SF1B00-----------------------
  7. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DISPLAY
  8.     AH = 01h subfn 1B00h
  9.     DS:DX -> control block
  10. Return: control block updated
  11. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2B00h
  12.  
  13. Format of control block:
  14. Offset    Size    Description
  15.  00h 12 BYTEs    reserved
  16.  0Ch    WORD    1B00h (verb "DISPLAY")
  17.  0Eh  6 BYTEs    00h
  18.  14h    DWORD    (big-endian) return code (see below)
  19.  18h    WORD    00h
  20.  1Ah  8 BYTEs    (big-endian) logical unit ID
  21.  22h  8 BYTEs    (big-endian) partner logical unit name
  22.  2Ah  8 BYTEs    (big-endian) mode name
  23.  32h    BYTE    logical unit session limit
  24.  33h    BYTE    partner logical unit session limit
  25.  34h    BYTE    node maximum negotiable session limit
  26.  35h    BYTE    current session limit
  27.  36h    BYTE    minimum negotiated winner limit
  28.  37h    BYTE    maximum negotiated loser limit
  29.  38h    BYTE    active session count
  30.  39h    BYTE    active CONWINNER session count
  31.  3Ah    BYTE    active CONLOSER session count
  32.  3Bh    BYTE    session termination count
  33.  3Ch    BYTE    bit 7: SESSION_TERMINATION_TARGET_DRAIN
  34.         bit 6: SESSION_TERMINATION_SOURCE_DRAIN
  35.  
  36. Values for return code:
  37.  0000h    successful
  38.  0001h    BAD_TP_ID
  39.  0002h    BAD_CONV_ID
  40.  0003h    bad logical unit ID
  41.  0008h    no physical unit attached
  42.  0110h    bad state
  43.  01B1h    BAD_PART_LUNAME
  44.  01B2h    bad mode name
  45.  0201h    physical unit already active
  46.  0211h    logical unit already active
  47.  0212h    BAD_PART_SESS
  48.  0213h    BAD_RU_SIZES
  49.  0214h    BAD_MODE_SESS
  50.  0216h    BAD_PACING_CNT
  51.  0219h    EXTREME_RUS
  52.  021Ah    SNASVCMG_1
  53.  0223h    SSCP_CONNECTED_LU
  54.  0230h    invalid change
  55.  0243h    too many TPs
  56.  0272h    adapter close failure
  57.  0281h    GET_ALLOC_BAD_TYPE
  58.  0282h    unsuccessful
  59.  0283h    DLC failure
  60.  0284h    unrecognized DLC
  61.  0286h    duplicate DLC
  62.  0301h    SSCP_PU_SESSION_NOT_ACTIVE
  63.  0302h    data exceeds RU size
  64.  0401h    invalid direction
  65.  0402h    invalid type
  66.  0403h    segment overlap
  67.  0404h    invalid first character
  68.  0405h    table error
  69.  0406h    conversion error
  70.  F0010000h    APPC disabled
  71.  F0020000h    APPC busy
  72.  F0030000h    APPC abended
  73.  F0040000h    incomplete
  74. --------N-6801--SF2000-----------------------
  75. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH PHYSICAL UNIT
  76.     AH = 01h subfn 2000h
  77.     DS:DX -> control block
  78. Return: control block updated
  79. SeeAlso: AH=01h/SF=2100h,AH=01h/SF=2B00h
  80.  
  81. Format of control block:
  82. Offset    Size    Description
  83.  00h 12 BYTEs    reserved
  84.  0Ch    WORD    2000h (verb "Attach Physical Unit")
  85.  0Eh  6 BYTEs    00h
  86.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  87.  18h    WORD    00h
  88.  1Ah    BYTE    version
  89.  1Bh    BYTE    release
  90.  1Ch  8 BYTEs    (big-endian) net name
  91.  24h  8 BYTEs    (big-endian) physical unit name
  92.  2Ch  8 BYTEs    00h
  93.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  94.         (see also AH=01h/SF=2100h)
  95.  38h    DWORD    00h
  96.  3Ch    BYTE    00h RETURN_CONTROL: COMPLETE
  97.         01h RETURN_CONTROL: INCOMPLETE
  98. --------N-6801--SF2100-----------------------
  99. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ATTACH LOGICAL UNIT
  100.     AH = 01h subfn 2100h
  101.     DS:DX -> control block
  102. Return: control block updated
  103. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2200h,AH=01h/SF=2B00h
  104.  
  105. Format of control block:
  106. Offset    Size    Description
  107.  00h 12 BYTEs    reserved
  108.  0Ch    WORD    2100h (verb "Attach Logical Unit")
  109.  0Eh  6 BYTEs    00h
  110.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  111.  18h    WORD    70  offset to partner logical unit record
  112.  1Ah  8 BYTEs    (big-endian) logical unit name
  113.  22h  8 BYTEs    (big-endian) logical unit ID
  114.  2Ah    BYTE    logical unit local address
  115.  2Bh    BYTE    logical unit session limit
  116.  2Ch    DWORD    pointer to CREATE_TP_EXIT routine,
  117.         FFFFFFFFh = reject incoming ALLOCATEs
  118.         00000000h = queue ALLOCATEs
  119.  30h    DWORD    00h
  120.  34h    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh=don't log errors
  121.  38h    DWORD    00h
  122.  3Ch    BYTE    maximum TPs
  123.  3Dh    BYTE    queue depth
  124.  3Eh    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh=no pswd exit
  125.  42h    DWORD    00h
  126.  46h    WORD    total length of partner records
  127.  48h    var    array of partner logical unit records (see below)
  128.  
  129. Format of partner logical unit record:
  130. Offset    Size    Description
  131.  00h    WORD    length of this partner logical unit record
  132.  02h    WORD    42  offset to mode records
  133.  04h  8 BYTEs    (big-endian) partner logical unit name
  134.  0Ch    BYTE    partner logical unit security capabilities
  135.         bit 7: already verified
  136.         bit 6: conversation level security
  137.         bit 5: session level security
  138.  0Dh    BYTE    partner logical unit session limit
  139.  0Eh    WORD    partner logical unit maximum MC_SEND_LL
  140.  10h  8 BYTEs    (big-endian) partner logical unit DLC name
  141.  18h    BYTE    partner logical unit adapter number
  142.  19h 17 BYTEs    (counted string) partner logical unit adapter address
  143.  2Ah    WORD    total length of mode records
  144.  2Ch 16N BYTEs    array of mode records (see below)
  145.  
  146. Format of mode record:
  147. Offset    Size    Description
  148.  00h    WORD    16  length of this mode record
  149.  02h  8 BYTEs    (big-endian) mode name
  150.  0Ah    WORD    RU_SIZE high bound
  151.  0Ch    WORD    RU_SIZE low bound
  152.  0Eh    BYTE    mode maximum negotiable session limit
  153.  0Fh    BYTE    pacing size for receive
  154.  
  155. Routines defined by LU_LU_PASSWORD_EXIT, CREATE_TP_EXIT, and SYSTEM_LOG_EXIT
  156. pointers are called by pushing the DWORD pointer to the verb on the stack and
  157. then performing a FAR call.
  158.  
  159. Format of ACCESS_LU_LU_PW verb:
  160. Offset    Size    Description
  161.  00h 12 BYTEs    reserved
  162.  0Ch    WORD    1900h (verb "ACCESS_LU_LU_PW")
  163.  0Eh  8 BYTEs    (big-endian) logical unit ID
  164.  16h  8 BYTEs    (big-endian) logical unit name
  165.  1Eh  8 BYTEs    (big-endian) partner logical unit name
  166.  26h 17 BYTEs    (counted string) partner fully qualified logical unit name
  167.  37h    BYTE    password available (0=no, 1=yes)
  168.  38h  8 BYTEs    password
  169.  
  170. Format of CREATE_TP verb:
  171. Offset    Size    Description
  172.  00h 12 BYTEs    reserved
  173.  0Ch    WORD    2300h (verb "CREATE_TP")
  174.  0Eh  6 BYTEs    00h
  175.  14h    DWORD    (big-endian) sense code (see below)
  176.  18h  8 BYTEs    (big-endian) TP ID
  177.  20h  8 BYTEs    (big-endian) logical unit ID
  178.  28h    DWORD    (big-endian) conversation ID
  179.  2Ch    BYTE    0 basic conversation, 1 mapped conversation
  180.  2Dh    BYTE    0 no sync level, 1 confirm
  181.  2Eh    BYTE    reserved
  182.  2Fh 65 BYTEs    (counted string) transaction program name
  183.  70h  6 BYTEs    00h
  184.  76h    WORD    length of ERROR_LOG_DATA to return
  185.  78h    DWORD    pointer to ERROR_LOG_DATA buffer
  186.  7Ch  8 BYTEs    (big-endian) partner logical unit name
  187.  84h 18 BYTEs    (counted string) partner fully qualified logical unit name
  188.  96h  8 BYTEs    (big-endian) mode name
  189.  9Eh 12 BYTEs    00h
  190.  AAh 11 BYTEs    (counted string) password
  191.  B5h 11 BYTEs    (counted string) user ID
  192.  C0h    BYTE    0 verification should be performed
  193.         1 already verified
  194.  
  195. Values for sense code:
  196.  00000000h    Ok
  197.  080F6051h    SECURITY_NOT_VALID
  198.  084B6031h    TP_NOT_AVAIL_RETRY
  199.  084C0000h    TP_NOT_AVAIL_NO_RETRY
  200.  10086021h    TP_NAME_NOT_RECOGNIZED
  201.  10086034h    CONVERSATION_TYPE_MISMATCH
  202.  10086041h    SYNC_LEVEL_NOT_SUPPORTED
  203.  
  204. Format of SYSLOG verb:
  205. Offset    Size    Description
  206.  00h 12 BYTEs    reserved
  207.  0Ch    WORD    2600h (verb "SYSLOG")
  208.  0Eh 10 BYTEs    00h
  209.  18h    WORD    (big-endian) type
  210.  1Ah    DWORD    (big-endian) subtype
  211.  1Eh    DWORD    pointer to ADDITIONAL_INFO
  212.  22h    DWORD    (big-endian) conversation ID
  213.  26h  8 BYTEs    (big-endian) TP ID
  214.  2Eh  8 BYTEs    (big-endian) physical unit or logical unit name
  215.  36h    WORD    length of data
  216.  38h    DWORD    pointer to data
  217.  3Ch    BYTE    00h
  218. --------N-6801--SF2200-----------------------
  219. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH LOGICAL UNIT
  220.     AH = 01h subfn 2200h
  221.     DS:DX -> control block
  222. Return: control block updated
  223. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2700h
  224.  
  225. Format of control block:
  226. Offset    Size    Description
  227.  00h 12 BYTEs    reserved
  228.  0Ch    WORD    2200h (verb "Detach Logical Unit")
  229.  0Eh  6 BYTEs    00h
  230.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  231.  18h  8 BYTEs    (big-endian) logical unit ID
  232.  20h    BYTE    00h
  233. --------N-6801--SF2700-----------------------
  234. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - DETACH PHYSICAL UNIT
  235.     AH = 01h subfn 2700h
  236.     DS:DX -> control block
  237. Return: control block updated
  238. SeeAlso: AH=01h/SF=2000h,AH=01h/SF=2100h,AH=01h/SF=2200h
  239.  
  240. Format of control block:
  241. Offset    Size    Description
  242.  00h 12 BYTEs    reserved
  243.  0Ch    WORD    2700h (verb "Detach Physical Unit")
  244.  0Eh  6 BYTEs    00h
  245.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  246.  18h    BYTE    00h  type: hard
  247.         01h  type: soft
  248. --------N-6801--SF2B00-----------------------
  249. INT 68 - APPC/PC - NETWORK DEVICE CONTROL - ACTIVATE DLC
  250.     AH = 01h subfn 2B00h
  251.     DS:DX -> control block
  252. Return: control block updated
  253. SeeAlso: AH=01h/SF=1B00h,AH=01h/SF=2000h
  254.  
  255. Format of control block:
  256. Offset    Size    Description
  257.  00h 12 BYTEs    reserved
  258.  0Ch    WORD    2B00h (verb "Activate DLC")
  259.  0Eh  6 BYTEs    00h
  260.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  261.  18h  8 BYTEs    (big-endian) DLC name
  262.  20h    BYTE    adapter number
  263. --------N-6802--SF0100-----------------------
  264. INT 68 - APPC/PC - CONNECTION CONTROL - ALLOCATE
  265.     AH = 02h subfn 0100h
  266.     DS:DX -> control block
  267. Return: control block updated
  268. SeeAlso: AH=02h/SF=0500h
  269.  
  270. Format of control block:
  271. Offset    Size    Description
  272.  00h 12 BYTEs    reserved
  273.  0Ch    WORD    0100h (verb "Allocate" or "MC_Allocate")
  274.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  275.         0 if basic verb
  276.  0Fh  5 BYTEs    reserved (0)
  277.  14h    WORD    (big-endian) primary return code (see below)
  278.  16h    DWORD    (big-endian) error code (see below)
  279.  1Ah  8 BYTEs    (big-endian) TP_ID
  280.  22h    DWORD    (big-endian) conversation ID
  281.  26h    BYTE    (MC_Allocate only) 0 basic conversation
  282.                    1 mapped conversation
  283.  27h    BYTE    SYNC_LEVEL (00h none, 01h confirm)
  284.  28h    WORD    0000h
  285.  2Ah    BYTE    00h RETURN_CONTROL: when session allocated
  286.         01h RETURN_CONTROL: immediate
  287.         02h RETURN_CONTROL: when session free
  288.  2Bh  8 BYTEs    00h
  289.  33h  8 BYTEs    (big-endian) partner logical unit name
  290.  3Bh  8 BYTEs    (big-endian) mode name
  291.  43h 65 BYTEs    (counted string) TP name
  292.  84h    BYTE    security (00h none, 01h same, 02h pgm)
  293.  85h 11 BYTEs    00h
  294.  90h 11 BYTEs    (counted string) password
  295.  9Bh 11 BYTEs    (counted string) user ID
  296.  A6h    WORD    PIP_DATA length
  297.  A8h    DWORD    pointer to PIP_DATA
  298.  
  299. Values for primary return code:
  300.  0000h    successful
  301.  0001h    parameter check
  302.  0002h    state check
  303.  0003h    allocation error
  304.  0005h    deallocate abended
  305.  0006h    deallocate abended program
  306.  0007h    deallocate abended SVC
  307.  0008h    deallocate abended timer
  308.  0009h    deallocate normal return
  309.  000Ah    data posting blocked
  310.  000Bh    posting not active
  311.  000Ch    PROG_ERROR_NO_TRUNC
  312.  000Dh    PROG_ERROR_TRUNC
  313.  000Eh    PROG_ERROR_PURGING
  314.  000Fh    CONV_FAILURE_RETRY
  315.  0010h    CONV_FAILURE_NO_RETRY
  316.  0011h    SVC_ERROR_NO_TRUNC
  317.  0012h    SVC_ERROR_TRUNC
  318.  0013h    SVC_ERROR_PURGING
  319.  0014h    unsuccessful
  320.  0018h    CNOS partner logical unit reject
  321.  0019h    conversation type mixed
  322.  F001h    APPC disabled
  323.  F002h    APPC busy
  324.  F003h    APPC abended
  325.  F004h    incomplete
  326.  
  327. Values for error code:
  328.  0001h    bad TP ID
  329.  0002h    bad conversation ID
  330.  0004h    allocation error, no retry
  331.  0005h    allocation error, retry
  332.  0006h    data area crosses segment boundary
  333.  0010h    bad TPN length
  334.  0011h    bad CONV length
  335.  0012h    bad SYNC level
  336.  0013h    bad security selection
  337.  0014h    bad return control
  338.  0015h    SEC_TOKENS too big
  339.  0016h    PIP_LEN incorrect
  340.  0017h    no use of SNASVCMG
  341.  0018h    unknown partner mode
  342.  0031h    confirm: SYNC_NONE
  343.  0032h    confirm: bad state
  344.  0033h    confirm: NOT_LL_BDY
  345.  0041h    confirmed: bad state
  346.  0051h    deallocate: bad type
  347.  0052h    deallocate: flush bad state
  348.  0053h    deallocate: confirm bad state
  349.  0055h    deallocate: NOT_LL_BDY
  350.  0057h    deallocate: log LL_WRONG
  351.  0061h    flush: not send state
  352.  0091h    post on receipt: invalid length
  353.  0092h    post on receipt: not in receive state
  354.  0093h    post on receipt: bad fill
  355.  00A1h    prepare to receive:invalid type
  356.  00A2h    prepare to receive: unfinished LL
  357.  00A3h    prepare to receive: not in send state
  358.  00B1h    receive and wait: bad state
  359.  00B2h    receive and wait: NOT_LL_BDY
  360.  00B5h    receive and wait: bad fill
  361.  00C1h    receive immediate: not in receive state
  362.  00C4h    receive immediate: bad fill
  363.  00E1h    request to send: not in receive state
  364.  00F1h    send data: bad LL
  365.  00F2h    send data: not in send state
  366.  0102h    send error: log LL wrong
  367.  0103h    send error: bad type
  368.  0121h    test: invalid type
  369.  0122h    test: not in receive state
  370. --------N-6802--SF0300-----------------------
  371. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRM
  372.     AH = 02h subfn 0300h
  373.     DS:DX -> control block
  374. Return: control block updated
  375. SeeAlso: AH=02h/SF=0400h
  376.  
  377. Format of control block:
  378. Offset    Size    Description
  379.  00h 12 BYTEs    reserved
  380.  0Ch    WORD    0300h (verb "Confirm" or "MC_Confirm")
  381.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  382.         0 if basic verb
  383.  0Fh  5 BYTEs    reserved (0)
  384.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  385.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  386.  1Ah  8 BYTEs    (big-endian) TP_ID
  387.  22h    DWORD    (big-endian) conversation ID
  388.  26h    BYTE    request to send received (0=no, 1=yes)
  389. --------N-6802--SF0400-----------------------
  390. INT 68 - APPC/PC - CONNECTION CONTROL - CONFIRMED
  391.     AH = 02h subfn 0400h
  392.     DS:DX -> control block
  393. Return: control block updated
  394. SeeAlso: AH=02h/SF=0300h
  395.  
  396. Format of control block:
  397. Offset    Size    Description
  398.  00h 12 BYTEs    reserved
  399.  0Ch    WORD    0400h (verb "Confirmed" or "MC_Confirmed")
  400.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  401.         0 if basic verb
  402.  0Fh  5 BYTEs    reserved (0)
  403.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  404.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  405.  1Ah  8 BYTEs    (big-endian) TP_ID
  406.  22h    DWORD    (big-endian) conversation ID
  407. --------N-6802--SF0500-----------------------
  408. INT 68 - APPC/PC - CONNECTION CONTROL - DEALLOCATE
  409.     AH = 02h subfn 0500h
  410.     DS:DX -> control block
  411. Return: control block updated
  412. SeeAlso: AH=02h/SF=0100h,AH=02h/SF=0300h
  413.  
  414. Format of control block:
  415. Offset    Size    Description
  416.  00h 12 BYTEs    reserved
  417.  0Ch    WORD    0500h (verb "Deallocate" or "MC_Deallocate")
  418.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  419.         0 if basic verb
  420.  0Fh  5 BYTEs    reserved (0)
  421.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  422.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  423.  1Ah  8 BYTEs    (big-endian) TP_ID
  424.  22h    DWORD    (big-endian) conversation ID
  425.  26h    BYTE    00h
  426.  27h    BYTE    type
  427.         00h SYNC_LEVEL
  428.         01h FLUSH
  429.         02h ABEND_PROC
  430.         03h ABEND_SVC
  431.         04h ABEND_TIMER
  432.         05h ABEND
  433.  28h    WORD    (MC_Deallocate only) length of error log data
  434.  2Ah    DWORD    (MC_Deallocate only) pointer to error log data
  435. --------N-6802--SF0600-----------------------
  436. INT 68 - APPC/PC - CONNECTION CONTROL - FLUSH
  437.     AH = 02h subfn 0600h
  438.     DS:DX -> control block
  439. Return: control block updated
  440. SeeAlso: AH=02h/SF=0300h
  441.  
  442. Format of control block:
  443. Offset    Size    Description
  444.  00h 12 BYTEs    reserved
  445.  0Ch    WORD    0600h (verb "Flush" or "MC_Flush")
  446.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  447.         0 if basic verb
  448.  0Fh  5 BYTEs    reserved (0)
  449.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  450.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  451.  1Ah  8 BYTEs    (big-endian) TP_ID
  452.  22h    DWORD    (big-endian) conversation ID
  453. --------N-6802--SF0700-----------------------
  454. INT 68 - APPC/PC - CONNECTION CONTROL - GET ATTRIBUTES
  455.     AH = 02h subfn 0700h
  456.     DS:DX -> control block
  457. Return: control block updated
  458. SeeAlso: AH=02h/SF=0300h
  459.  
  460. Format of control block:
  461. Offset    Size    Description
  462.  00h 12 BYTEs    reserved
  463.  0Ch    WORD    0700h (verb "Get_Attributes" or "MC_Get_Attributes")
  464.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  465.         0 if basic verb
  466.  0Fh  5 BYTEs    reserved (0)
  467.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  468.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  469.  1Ah  8 BYTEs    (big-endian) TP_ID
  470.  22h    DWORD    (big-endian) conversation ID
  471.  26h  8 BYTEs    (big-endian) logical unit ID
  472.  2Eh    BYTE    00h
  473.  2Fh    BYTE    SYNC_LEVEL (0=none, 1=confirm)
  474.  30h  8 BYTEs    (big-endian) mode name
  475.  38h  8 BYTEs    (big-endian) own net name
  476.  40h  8 BYTEs    (big-endian) own logical unit name
  477.  48h  8 BYTEs    (big-endian) partner logical unit name
  478.  50h 18 BYTEs    (counted string) partner's fully qualified logical unit name
  479.  62h    BYTE    00h
  480.  63h 11 BYTEs    (counted string) user ID
  481. --------N-6802--SF0800-----------------------
  482. INT 68 - APPC/PC - CONNECTION CONTROL - GET CONVERSATION TYPE
  483.     AH = 02h subfn 0800h
  484.     DS:DX -> control block
  485. Return: control block updated
  486. SeeAlso: AH=02h/SF=0300h
  487.  
  488. Format of control block:
  489. Offset    Size    Description
  490.  00h 12 BYTEs    reserved
  491.  0Ch    WORD    0800h (verb "Get_Type")
  492.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  493.         0 if basic verb
  494.  0Fh  5 BYTEs    reserved (0)
  495.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  496.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  497.  1Ah  8 BYTEs    (big-endian) TP_ID
  498.  22h    DWORD    (big-endian) conversation ID
  499.  26h    BYTE    (return) type (0=basic conversation, 1=mapped conversation)
  500. --------N-6802--SF0900-----------------------
  501. INT 68 - APPC/PC - CONNECTION CONTROL - POST ON RECEIPT
  502.     AH = 02h subfn 0900h
  503.     DS:DX -> control block
  504. Return: control block updated
  505. SeeAlso: AH=02h/SF=0A00h
  506.  
  507. Format of control block:
  508. Offset    Size    Description
  509.  00h 12 BYTEs    reserved
  510.  0Ch    WORD    0900h (verb "Post_on_Receipt")
  511.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  512.         0 if basic verb
  513.  0Fh  5 BYTEs    reserved (0)
  514.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  515.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  516.  1Ah  8 BYTEs    (big-endian) TP_ID
  517.  22h    DWORD    (big-endian) conversation ID
  518.  26h    WORD    maximum length
  519.  28h    BYTE    fill (0=buffer, 1=LL)
  520. --------N-6802--SF0A00-----------------------
  521. INT 68 - APPC/PC - CONNECTION CONTROL - PREPARE TO RECEIVE
  522.     AH = 02h subfn 0A00h
  523.     DS:DX -> control block
  524. Return: control block updated
  525. SeeAlso: AH=02h/SF=0900h,AH=02h/SF=0B00h
  526.  
  527. Format of control block:
  528. Offset    Size    Description
  529.  00h 12 BYTEs    reserved
  530.  0Ch    WORD    0A00h (verb "Prepare_to_Receive" or "MC_Prepare_to_Receive")
  531.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  532.         0 if basic verb
  533.  0Fh  5 BYTEs    reserved (0)
  534.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  535.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  536.  1Ah  8 BYTEs    (big-endian) TP_ID
  537.  22h    DWORD    (big-endian) conversation ID
  538.  26h    BYTE    type (0=SYNC_LEVEL, 1=FLUSH)
  539.  27h    BYTE    locks (0=short, 1=long)
  540. --------N-6802--SF0B00-----------------------
  541. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE AND WAIT
  542.     AH = 02h subfn 0B00h
  543.     DS:DX -> control block
  544. Return: control block updated
  545. SeeAlso: AH=02h/SF=0C00h,AH=02h/SF=0F00h
  546.  
  547. Format of control block:
  548. Offset    Size    Description
  549.  00h 12 BYTEs    reserved
  550.  0Ch    WORD    0B00h (verb "Receive_and_Wait" or "MC_Receive_and_Wait")
  551.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  552.         0 if basic verb
  553.  0Fh  5 BYTEs    reserved (0)
  554.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  555.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  556.  1Ah  8 BYTEs    (big-endian) TP_ID
  557.  22h    DWORD    (big-endian) conversation ID
  558.  26h    BYTE    type of information received (see below)
  559.  27h    BYTE    (MC_Receive_and_Wait only) fill (0=buffer, 1=LL)
  560.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  561.  29h    WORD    maximum length
  562.  2Bh    WORD    data length
  563.  2Dh    DWORD    pointer to data
  564.  
  565. Values for type of information received:
  566.  00h    data
  567.  01h    data complete
  568.  02h    data incomplete
  569.  03h    confirm
  570.  04h    confirm send
  571.  05h    confirm deallocate
  572.  06h    send
  573. --------N-6802--SF0C00-----------------------
  574. INT 68 - APPC/PC - CONNECTION CONTROL - RECEIVE IMMEDIATE
  575.     AH = 02h subfn 0C00h
  576.     DS:DX -> control block
  577. Return: control block updated
  578. SeeAlso: AH=02h/SF=0B00h,AH=02h/SF=0F00h
  579.  
  580. Format of control block:
  581. Offset    Size    Description
  582.  00h 12 BYTEs    reserved
  583.  0Ch    WORD    0C00h (verb "Receive_Immediate" or "MC_Receive_Immediate")
  584.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  585.         0 if basic verb
  586.  0Fh  5 BYTEs    reserved (0)
  587.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  588.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  589.  1Ah  8 BYTEs    (big-endian) TP_ID
  590.  22h    DWORD    (big-endian) conversation ID
  591.  26h    BYTE    type of information received (see AH=02h/SF=0B00h)
  592.  27h    BYTE    (MC_Receive_Immediate only) fill (0=buffer, 1=LL)
  593.  28h    BYTE    Request_to_Send_Received (0=no, 1=yes)
  594.  29h    WORD    maximum length
  595.  2Bh    WORD    data length
  596.  2Dh    DWORD    pointer to data
  597. --------N-6802--SF0E00-----------------------
  598. INT 68 - APPC/PC - CONNECTION CONTROL - REQUEST TO SEND
  599.     AH = 02h subfn 0E00h
  600.     DS:DX -> control block
  601. Return: control block updated
  602. SeeAlso: AH=02h/SF=0F00h,AH=02h/SF=1000h
  603.  
  604. Format of control block:
  605. Offset    Size    Description
  606.  00h 12 BYTEs    reserved
  607.  0Ch    WORD    0E00h (verb "Request_to_Send" or "MC_Request_to_Send")
  608.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  609.         0 if basic verb
  610.  0Fh  5 BYTEs    reserved (0)
  611.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  612.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  613.  1Ah  8 BYTEs    (big-endian) TP_ID
  614.  22h    DWORD    (big-endian) conversation ID
  615. --------N-6802--SF0F00-----------------------
  616. INT 68 - APPC/PC - CONNECTION CONTROL - SEND DATA
  617.     AH = 02h subfn 0F00h
  618.     DS:DX -> control block
  619. Return: control block updated
  620. SeeAlso: AH=02h/SF=0E00h,AH=02h/SF=1000h
  621.  
  622. Format of control block:
  623. Offset    Size    Description
  624.  00h 12 BYTEs    reserved
  625.  0Ch    WORD    0F00h (verb "Send_Data" or "MC_Send_Data")
  626.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  627.         0 if basic verb
  628.  0Fh  5 BYTEs    reserved (0)
  629.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  630.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  631.  1Ah  8 BYTEs    (big-endian) TP_ID
  632.  22h    DWORD    (big-endian) conversation ID
  633.  26h    BYTE    request to send received (0=no, 1=yes)
  634.  27h    BYTE    00h
  635.  28h    WORD    data length
  636.  2Ah    DWORD    pointer to data
  637. --------N-6802--SF1000-----------------------
  638. INT 68 - APPC/PC - CONNECTION CONTROL - SEND ERROR
  639.     AH = 02h subfn 1000h
  640.     DS:DX -> control block
  641. Return: control block updated
  642. SeeAlso: AH=02h/SF=0F00h
  643.  
  644. Format of control block:
  645. Offset    Size    Description
  646.  00h 12 BYTEs    reserved
  647.  0Ch    WORD    1000h (verb "Send_Error" or "MC_Send_Error")
  648.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  649.         0 if basic verb
  650.  0Fh  5 BYTEs    reserved (0)
  651.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  652.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  653.  1Ah  8 BYTEs    (big-endian) TP_ID
  654.  22h    DWORD    (big-endian) conversation ID
  655.  26h    BYTE    request to send received (0=no, 1=yes)
  656.  27h    BYTE    type (0=program, 1=SVC)
  657.  28h    DWORD    00h
  658.  2Ch    WORD    (MC_Send_Error only) LOG_DATA length
  659.  2Eh    DWORD    (MC_Send_Error only) pointer to LOG_DATA
  660. --------N-6802--SF1200-----------------------
  661. INT 68 - APPC/PC - CONNECTION CONTROL - TEST
  662.     AH = 02h subfn 1200h
  663.     DS:DX -> control block
  664. Return: control block updated
  665. SeeAlso: AH=02h/SF=1300h
  666.  
  667. Format of control block:
  668. Offset    Size    Description
  669.  00h 12 BYTEs    reserved
  670.  0Ch    WORD    1200h (verb "Test" or "MC_Test")
  671.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  672.         0 if basic verb
  673.  0Fh  5 BYTEs    reserved (0)
  674.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  675.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  676.  1Ah  8 BYTEs    (big-endian) TP_ID
  677.  22h    DWORD    (big-endian) conversation ID
  678.  26h    BYTE    (MC_Test only) test (0=posted, 1=request_to_send received)
  679.         Note: error code has different interpretations for:
  680.             0 posted data
  681.             1 posted not data (primary return code = 0)
  682.             1 bad TP_ID (primary return code = 1)
  683. --------N-6802--SF1300-----------------------
  684. INT 68 - APPC/PC - CONNECTION CONTROL - WAIT
  685.     AH = 02h subfn 1300h
  686.     DS:DX -> control block
  687. Return: control block updated
  688. SeeAlso: AH=02h/SF=1200h
  689.  
  690. Format of control block:
  691. Offset    Size    Description
  692.  00h 12 BYTEs    reserved
  693.  0Ch    WORD    1300h (verb "Wait")
  694.  0Eh    BYTE    1 if MC_ (mapped conversation) form of verb
  695.         0 if basic verb
  696.  0Fh  5 BYTEs    reserved (0)
  697.  14h    WORD    (big-endian) primary return code (see AH=02h/SF=0100h)
  698.  16h    DWORD    (big-endian) error code (see AH=02h/SF=0100h)
  699.  1Ah  8 BYTEs    (big-endian) TP_ID
  700.  22h    DWORD    (big-endian) conversation ID
  701.  26h    BYTE    number of conversations to wait on
  702.         Note: error codes have interpretations as for AH=02h/SF=1200h
  703. --------N-6803--SF2400-----------------------
  704. INT 68 - APPC/PC - TP STARTED
  705.     AH = 03h subfn 2400h
  706.     DS:DX -> control block (see below)
  707. Return: control block updated
  708.  
  709. Format of control block:
  710. Offset    Size    Description
  711.  00h 12 BYTEs    reserved
  712.  0Ch    WORD    2400h (verb "TP Started")
  713.  0Eh  6 BYTEs    00h
  714.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  715.  18h    WORD    00h
  716.  1Ah  8 BYTEs    (big-endian) logical unit ID
  717.  22h  8 BYTEs    (big-endian) TP ID
  718. --------N-6803--SF2800-----------------------
  719. INT 68 - APPC/PC - GET ALLOCATE
  720.     AH = 03h subfn 2800h
  721.     DS:DX -> control block (see below)
  722. Return: control block updated
  723.  
  724. Format of control block:
  725. Offset    Size    Description
  726.  00h 12 BYTEs    reserved
  727.  0Ch    WORD    2800h (verb "Get ALLOCATE")
  728.  0Eh  6 BYTEs    00h
  729.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  730.  18h    WORD    00h
  731.  1Ah  8 BYTEs    (big-endian) logical unit ID
  732.  22h    BYTE    type (00h dequeue, 01h test)
  733.  23h    DWORD    pointer to CREATE_TP record
  734. --------N-6803--SF2A00-----------------------
  735. INT 68 - APPC/PC - CHANGE LOGICAL UNIT
  736.     AH = 03h subfn 2A00h
  737.     DS:DX -> control block (see below)
  738. Return: control block updated
  739.  
  740. Format of control block:
  741. Offset    Size    Description
  742.  00h 12 BYTEs    reserved
  743.  0Ch    WORD    2A00h (verb "Change Logical Unit")
  744.  0Eh  6 BYTEs    00h
  745.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  746.  18h    WORD    00h
  747.  1Ah  8 BYTEs    (big-endian) logical unit ID
  748.  22h    DWORD    pointer to CREATE_TP_EXIT routine
  749.         FFFFFFFFh reject incoming ALLOCATEs
  750.         00000000h queue ALLOCATEs
  751.  26h    DWORD    00000000h
  752.  2Ah    DWORD    pointer to SYSTEM_LOG_EXIT routine, FFFFFFFFh= don't log errors
  753.  2Eh    DWORD    00000000h
  754.  32h    BYTE    maximum TPs
  755.  33h    BYTE    00h stop QUEUE_ALLOCATEs
  756.         01h resume QUEUE_ALLOCATEs
  757.  34h    DWORD    pointer to LU_LU_PASSWORD_EXIT routine, FFFFFFFFh = no exit
  758.  38h    DWORD    00000000h
  759. --------N-6804-------------------------------
  760. INT 68 - APPC/PC - TRANSACTION PROCESSING
  761.     AH = 04h
  762.     DS:DX -> control block (see below)
  763. Return: control block updated
  764.  
  765. Format of control block:
  766. Offset    Size    Description
  767.  00h 12 BYTEs    reserved
  768.  0Ch    WORD    verb (action)
  769.         2500h TP_ENDED
  770.         2900h TP_VALID
  771.  0Eh  6 BYTEs    00h
  772.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  773.  18h    WORD    00h
  774.  1Ah  8 BYTEs    (big-endian) TP_ID
  775.  22h    DWORD    -> CREATE_TP record (only if verb = 2900h)
  776. --------N-6805-------------------------------
  777. INT 68 - APPC/PC - TRANSFER MESSAGE DATA
  778.     AH = 05h
  779.     DS:DX -> control block (see below)
  780. Return: control block updated
  781.  
  782. Format of control block:
  783. Offset    Size    Description
  784.  00h 12 BYTEs    reserved
  785.  0Ch    WORD    1C00h (verb "Transfer Message Data")
  786.  0Eh    BYTE    00h user defined
  787.         01h NMVT
  788.         02h alert subvectors
  789.         03h PDSTATS subvectors
  790.  0Fh  5 BYTEs    00h
  791.  14h    DWORD    (big-endian) return code (see AH=01h/SF=1B00h)
  792.  18h 12 BYTEs    00h
  793.  24h    BYTE    if bit 0 clear, add correlation subvector
  794.         if bit 1 clear, add product set ID subvector
  795.         if bit 2 clear, do SYSLOG
  796.         if bit 3 clear, send SSCP_PU_SESSION
  797.  25h    BYTE    00h
  798.  26h    WORD    length of data
  799.  28h  N BYTEs    data
  800. --------N-6806-------------------------------
  801. INT 68 - APPC/PC - CHANGE NUMBER OF SESSIONS
  802.     AH = 06h
  803.     DS:DX -> control block (see below)
  804. Return: control block updated
  805.  
  806. Format of control block:
  807. Offset    Size    Description
  808.  00h 12 BYTEs    reserved
  809.  0Ch    WORD    1500h (verb "Change Number of Sessions")
  810.  0Eh  6 BYTEs    00h
  811.  14h    WORD    (big-endian) primary return code (see AH=02h)
  812.  16h    DWORD    (big-endian) secondary return code (see below, AH=01h/SF=1B00h)
  813.  1Ah  8 BYTEs    (big-endian) logical unit ID
  814.  22h  8 BYTEs    blanks
  815.  2Ah  8 BYTEs    (big-endian) partner logical unit name
  816.  32h  8 BYTEs    (big-endian) mode name
  817.  3Ah    BYTE    bit 7: use MODE_NAME_SELECT_ALL rather than MODE_NAME
  818.         bit 6: set negotiable values
  819.  3Bh    BYTE    partner logical unit mode session limit
  820.  3Ch    BYTE    minimum CONWINNERS_SOURCE
  821.  3Dh    BYTE    maximum CONWINNERS_TARGET
  822.  3Eh    BYTE    automatic activation
  823.  3Fh    BYTE    00h
  824.  40h    BYTE    bit 7: drain target
  825.         bit 6: drain source
  826.         bit 5: target responsible, not source
  827.  
  828. Values for secondary return code (see also AH=01h/SF=1B00h):
  829.  0000h    accepted
  830.  0001h    negotiated
  831.  0003h    bad logical unit ID
  832.  0004h    allocation failure, no retry
  833.  0005h    allocation failure, retry
  834.  0151h    can't raise limits
  835.  0153h    all modes must reset
  836.  0154h    bad SNASVCMG limits
  837.  0155h    minimum greater than total
  838.  0156h    mode closed (primary return code = 1)
  839.     CNOS mode closed (primary return code = 18h)
  840.  0157h    bad mode name (primary return code = 1)
  841.     CNOS bad mode name (primary return code = 18h)
  842.  0159h    reset SNA drains
  843.  015Ah    single not SRC response
  844.  015Bh    bad partner logical unit
  845.  015Ch    exceeds maximum allowed
  846.  015Dh    change SRC drains
  847.  015Eh    logical unit detached
  848.  015Fh    CNOS command race reject
  849. --------N-6807-------------------------------
  850. INT 68 - APPC/PC - PASSTHROUGH
  851.     AH = 07h
  852.     DS:DX -> control block (format depends on application subsystem)
  853. Return: control block updated
  854. SeeAlso: AH=FFh
  855. --------N-68FA-------------------------------
  856. INT 68 - APPC/PC - ENABLE/DISABLE APPC
  857.     AH = FAh
  858.     AL bit 0 = 0 enable
  859.            1 disable
  860. SeeAlso: AH=FDh
  861. --------N-68FB-------------------------------
  862. INT 68 - APPC/PC - CONVERT
  863.     AH = FBh
  864.     DS:DX -> control block (see below)
  865. Return: control block updated
  866.  
  867. Format of control block:
  868. Offset    Size    Description
  869.  00h 12 BYTEs    reserved
  870.  0Ch    WORD    1A00h (verb "CONVERT")
  871.  0Eh  6 BYTEs    00h
  872.  14h    DWORD    (big-endian) return code
  873.  18h    BYTE    conversion
  874.         00h ASCII to EBCDIC
  875.         01h EBCDIC to ASCII
  876.  19h    BYTE    character set
  877.         00h AE
  878.         01h A
  879.         02h G
  880.  1Ah    WORD    length of string to convert
  881.  1Ch    DWORD    pointer to source
  882.  20h    DWORD    pointer to target
  883. --------N-68FC-------------------------------
  884. INT 68 - APPC/PC - ENABLE/DISABLE MESSAGE TRACING
  885.     AH = FCh
  886.     AL = 00h disable tracing
  887.        = 01h enable tracing
  888.         DX = number of bytes to keep (0=all)
  889. SeeAlso: AH=FDh,AH=FEh
  890. --------N-68FD-------------------------------
  891. INT 68 - APPC/PC - ENABLE/DISABLE API VERB TRACING
  892.     AH = FDh
  893.     AL = 00h disable tracing
  894.          01h enable tracing
  895. SeeAlso: AH=FAh,AH=FCh,AH=FEh
  896. --------N-68FE-------------------------------
  897. INT 68 - APPC/PC - SET TRACE DESTINATION
  898.     AH = FEh
  899.     AL = trace destinations (see below)
  900.     DS:DX -> trace stats record if AL bit 0 set
  901. SeeAlso: AH=FCh,AH=FDh
  902.  
  903. Bitfields for trace destinations:
  904.  bit 0    storage (DS:DX -> trace stats record)
  905.  bit 1    display
  906.  bit 2    file (trace written to file OUTPUT.PC)
  907.  bit 3    printer
  908.  
  909. Format of Trace Statistics Record:
  910. Offset    Size    Description
  911.  00h    DWORD    pointer to storage trace buffer
  912.  04h    WORD    max number of 80-byte records in trace
  913.  06h    WORD    (high-order byte first!) current record number (must init to 0)
  914.  08h    DWORD    (high-order byte first!) number of records written (init to 0)
  915.  0Ch    DWORD    reserved
  916. Note:    do not move record while trace is active
  917. --------N-68FF-------------------------------
  918. INT 68 - APPC/PC - SET PASSTHROUGH
  919.     AH = FFh
  920.     DS:DX -> passthrough exit routine
  921. SeeAlso: AH=07h
  922. --------b-69---------------------------------
  923. INT 69 - Zenith AT BIOS - ???
  924.    called by INT 09 handler
  925. --------N-690100-----------------------------
  926. INT 69 - DECnet DOS CTERM - INSTALLATION CHECK
  927.     AX = 0100h
  928. Return: AL = FFh if present
  929. SeeAlso: AX=010Fh
  930. --------N-690101-----------------------------
  931. INT 69 - DECnet DOS CTERM - SEND BYTE
  932.     AX = 0101h
  933.     BL = character
  934.     DX = session handle
  935. Return: AH >= 80h on error
  936. SeeAlso: AX=0102h
  937. --------N-690102-----------------------------
  938. INT 69 - DECnet DOS CTERM - READ BYTE
  939.     AX = 0102h
  940.     DX = session handle
  941. Return: AH >= 80h on error
  942.     AH < 80h if successful
  943.         AL = character
  944. SeeAlso: AX=0101h
  945. --------N-690103-----------------------------
  946. INT 69 - DECnet DOS CTERM - STATUS
  947.     AX = 0103h
  948.     DX = session handle
  949. Return: AH status flags
  950.         bit 7 session has been aborted
  951.         bit 6 DECnet error
  952.         bit 1 trace data available
  953.         bit 0 receive data available
  954.     AL = reason code if DECnet error (see below)
  955. SeeAlso: AX=0104h
  956.  
  957. Values for reason code:
  958.  00h    normal disconnect
  959.  01h    unknown message from host
  960.  02h    protocol violation from host
  961.  03h    could not process the initiate message
  962.  04h    error receiving message from host
  963.  05h    error sending message to host
  964.  06h    error checking for message from host
  965.  07h    remote system does not support CTERM
  966.  08h    remote system does not support correct protocol version
  967.  09h    did not receive BIND message from host
  968.  0Ah    could not send BIND message to host
  969.  0Bh    no more sessions available
  970.  0Ch    session does not exist
  971.  0Dh    not enough memory to complete operation
  972.  0Eh    connection has broken
  973. Index:    error codes;DECnet DOS CTERM|DECnet DOS CTERM;error codes
  974. --------N-690104-----------------------------
  975. INT 69 - DECnet DOS CTERM - DECnet STATUS
  976.     AX = 0104h
  977.     DX = session handle
  978. Return: AX = reason code (see AX=0103h)
  979. Note:    use this call when AX=0103h returns a DECnet error
  980. SeeAlso: AX=0103h
  981. --------N-690105-----------------------------
  982. INT 69 - DECnet DOS CTERM - OPEN SESSION
  983.     AX = 0105h
  984.     DS:BX -> ASCIZ node name
  985.     ES:DX -> buffer for session control block (see INT 6A/AH=D0h)
  986. Return: AX <= 0 on error
  987.     AX > 0 session handle
  988. SeeAlso: AX=0103h,AX=0106h,AX=010Ah
  989. --------N-690106-----------------------------
  990. INT 69 - DECnet DOS CTERM - CLOSE SESSION
  991.     AX = 0106h
  992.     DX = session handle
  993. Return: AH = 00h good close
  994.        other error code (see AX=0103h)
  995. SeeAlso: AX=0103h,AX=0105h
  996. --------N-69010A-----------------------------
  997. INT 69 - DECnet DOS CTERM - GET SESSION CONTROL BLOCK SIZE
  998.     AX = 010Ah
  999. Return: AX = length of session control block in bytes
  1000. SeeAlso: AX=0105h
  1001. --------N-69010B-----------------------------
  1002. INT 69 - DECnet DOS CTERM - GET DECnet SOCKET
  1003.     AX = 010Bh
  1004.     DX = session handle
  1005. Return: AX > 0    DECnet socket for the session
  1006.        = 0    no match for handle
  1007. --------N-69010F-----------------------------
  1008. INT 69 - DECnet DOS CTERM - DEINSTALL CTERM
  1009.     AX = 010Fh
  1010. Return: AH = 00h succesful uninstall
  1011.        other error code
  1012. Note:    CTERM must have been the last TSR loaded in order to deinstall it
  1013. SeeAlso: AX=0100h
  1014. Index:    uninstall;DECnet DOS CTERM
  1015. --------N-690A-------------------------------
  1016. INT 69 - DECnet DOS 2.1+ - DATA LINK LAYER
  1017.     AH = 0Ah
  1018.     AL = function (see below)
  1019.     ES:BX -> Datalink Communication Block
  1020. Return: AX = status (see below)
  1021. SeeAlso: INT 6D"DECnet"
  1022.  
  1023. Values for function:
  1024.  00h    initialize
  1025.  01h    open portal
  1026.  02h    close portal
  1027.  03h    enable multicast address
  1028.  04h    disable multicast address
  1029.  05h    transmit
  1030.  06h    request transmit buffer
  1031.  07h    deallocate transmit buffer
  1032.  08h    read channel status
  1033.  09h    read datalink portal list
  1034.  0Ah    read information about a datalink portal
  1035.  0Bh    read and/or clear counters
  1036.  0Ch    request to boot from a network server
  1037.  0Dh    enable Ethernet channel
  1038.  0Eh    disable Ethernet channel
  1039.  0Fh    start MOP/send a System ID message
  1040.  10h    stop MOP
  1041.  11h    get DECPARM
  1042.  12h    set DECPARM
  1043.  13h    external loopback
  1044.  
  1045. Values for status:
  1046.  00h    successful
  1047.  01h    hardware failed to initialize
  1048.  02h    channel state was not off (must be off to execute that command)
  1049.  03h    channel state is off (must be on to execute that command)
  1050.  04h    address not set
  1051.  05h    hardware missing
  1052.  06h    buffer too small
  1053.  07h    no more buffers available
  1054.  08h    no more resources available
  1055.  09h    promiscuous receiver active
  1056.  0Ah    non exclusive
  1057.  0Bh    unrecognized portal
  1058.  0Ch    protocol type in use
  1059.  0Dh    not a valid Multicast address
  1060.  0Eh    outstanding calls
  1061.  0Fh    hardware doesn't support receiving bad frames
  1062.  10h    none outstanding
  1063.  11h    no events
  1064.  12h    broken
  1065.  13h    buffer quota exceeded
  1066.  14h    already initialized
  1067.  15h    loopback failure
  1068. Index:    error codes;DECnet DOS|DECnet DOS;error codes
  1069.  
  1070. Format of Datalink Communication Block
  1071. Offset    Type    Description
  1072.  00h    WORD    portal ID
  1073.  02h  6 BYTEs    source address
  1074.  08h  6 BYTEs    destination address
  1075.  0Eh    DWORD    buffer pointer
  1076.  12h    WORD    buffer length
  1077.  14h    WORD    operation
  1078.  16h    BYTE    pad flag (used on open)
  1079.         00h no pad
  1080.         01h pad
  1081.  17h    BYTE    mode flag (used on open)
  1082.         00h 802.3
  1083.         01h Ethernet
  1084.         02h promiscuous
  1085.  18h    DWORD    line status change function
  1086.  1Ch    DWORD    received data function
  1087.  20h    DWORD    transmitted data function
  1088.  24h    BYTE    maximum outstanding transmits/receives
  1089.  25h  2 BYTEs    protocol type
  1090.  27h    WORD    buffers lost
  1091. --------N-694001-----------------------------
  1092. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1093.     AX = 4001h
  1094. Return: CF clear
  1095.     AX = 0000h
  1096.     ES:SI -> ???
  1097. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  1098.       the signature "SYSV" immediately before the interrupt handler serves
  1099.       as the installation check
  1100. SeeAlso: AX=4002h
  1101. Index:    installation check;10NET SYSSVC
  1102. --------N-694002-----------------------------
  1103. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1104.     AX = 4002h
  1105.     ???
  1106. Return: ???
  1107. Note:    INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  1108.       the signature "SYSV" immediately before the interrupt handler serves
  1109.       as the installation check
  1110. --------N-694101-----------------------------
  1111. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1112.     AX = 4101h
  1113. Return: CF clear
  1114.     ES:SI -> ???
  1115. SeeAlso: AX=4102h,AX=4103h,AX=4104h
  1116. --------N-694102-----------------------------
  1117. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1118.     AX = 4102h
  1119.     ???
  1120. Return: ???
  1121. --------N-694103-----------------------------
  1122. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1123.     AX = 4103h
  1124.     ???
  1125. Return: ???
  1126. --------N-694104-----------------------------
  1127. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1128.     AX = 4104h
  1129.     ???
  1130. Return: ???
  1131. --------N-6942-------------------------------
  1132. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1133.     AH = 42h
  1134.     AL = function (01h-14h)
  1135.     ???
  1136. Return: ???
  1137. --------N-6943-------------------------------
  1138. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1139.     AH = 43h
  1140.     AL = function (01h-05h)
  1141.     ???
  1142. Return: ???
  1143. --------N-6944-------------------------------
  1144. INT 69 - 10NET v5.0 - SYSSVC.COM - ???
  1145.     AH = 44h
  1146.     AL = function (01h-03h)
  1147.     ???
  1148. Return: ???
  1149. --------N-6949-------------------------------
  1150. INT 69 - 10NET v5.0 - SYSSVC.COM - BUG
  1151.     AH = 49h
  1152. Note:    due to a fencepost error, this function branches to hyperspace
  1153. SeeAlso: AX=4001h,AH=FFh
  1154. --------G-696996-----------------------------
  1155. INT 69 - ISR.COM v1.00 - SPECIFY INTERRUPT HANDLER
  1156.     AX = 6996h
  1157.     DS:DX -> interrupt handler or 0000h:0000h to disable
  1158. Return: AX = 9669h
  1159. Program: ISR (Interrupt Service Reflector) is a TSR by Rich Bono which permits
  1160.       a program to provide hardware interrupt handlers even while being
  1161.       debugged with a debugger that swaps interrupt vectors during
  1162.       debugging.
  1163. Note:    the interrupt vector which is to be reflected is set at installation
  1164.       time and cannot be changed
  1165. --------N-69FF-------------------------------
  1166. INT 69 - 10NET v5.0 - SYSSVC.COM - SIGNAL SYSTEM ERROR
  1167.     AH = FFh
  1168. Return: never???
  1169. Notes:    displays "System Error" message and register dump, then halts system
  1170.     INT 69 is the default, and may be set to any interrupt from 60h-7Fh;
  1171.       the signature "SYSV" immediately before the interrupt handler serves
  1172.       as the installation check
  1173. SeeAlso: AX=4001h,AH=49h
  1174. --------U-6A---------------------------------
  1175. INT 6A - OPTHELP.COM
  1176. Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
  1177.       assembler
  1178. Note:    may be configured to use any interrupt from 60h to 7Fh (default 6Ah)
  1179. --------N-6A---------------------------------
  1180. INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM
  1181. Note:    the installation check consists of testing for a signature area
  1182.       immediately preceding the interrupt handler
  1183. SeeAlso: INT 6B"DECnet",INT 6D"DECnet"
  1184. Index:    installation check;DECnet DOS Local Area Transport
  1185.  
  1186. Format of signature area:
  1187. Offset    Size    Description
  1188.  -5    BYTE    major version number
  1189.  -4    BYTE    minor version number
  1190.  -3   3 BYTEs    signature (ASCII "LAT")
  1191. --------N-6A---------------------------------
  1192. INT 6A U - Super-TCP DOS TSR Kernel v3.57 - API
  1193.     AX = function
  1194.         0000h installation check
  1195.         Return: AX = 4357h ('CW')
  1196.         0001h
  1197.         BL = ???
  1198.         BH = ???
  1199.         0002h
  1200.         Return: AX = 0000h
  1201.             BL = ???
  1202.             BH = ???
  1203.         0003h get ??? data area
  1204.         Return: CX:DX -> data area (see below)
  1205.         0004h ??? !!!
  1206.         0005h ???
  1207.         000Fh ???
  1208.         0010h ???
  1209.         else
  1210.         Return: AX = FFFEh
  1211. Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
  1212. SeeAlso: INT 61"PCTCP",INT 62"BW-TCP"
  1213.  
  1214. Format of data area:
  1215. Offset    Size    Description
  1216.  00h  2 BYTEs    ???
  1217.  02h    DWORD    original INT 6A vector
  1218.     ???
  1219. --------N-6A01--DHFF-------------------------
  1220. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
  1221.     AH = 01h
  1222.     DH = FFh
  1223.     AL = character
  1224.     DL = handle
  1225. Return: AH >= 80h on error
  1226. SeeAlso: AH=02h
  1227. --------N-6A02--DHFF-------------------------
  1228. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
  1229.     AH = 02h
  1230.     DH = FFh
  1231.     DL = handle
  1232. Return: AH < 80h if successful
  1233.         AL = character
  1234.     AH >= 80h on error
  1235. SeeAlso: AH=01h
  1236. --------N-6A03--DHFF-------------------------
  1237. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
  1238.     AH = 03h
  1239.     DH = FFh
  1240.     DL = handle
  1241. Return: AH = status flags (see below)
  1242.  
  1243. Bitfields for status flags:
  1244.  bit 5    transmit buffer empty
  1245.  bit 3    session in start state
  1246.  bit 2    session not active
  1247.  bit 1    unable to queue transmit data
  1248.  bit 0    receive data available
  1249. --------N-6AD0--DHFF-------------------------
  1250. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
  1251.     AH = D0h
  1252.     DH = FFh
  1253.     AL = FFh no password
  1254.        = 0Fh password at ES:DI
  1255.     ES:BX -> LAT session control block (see below)
  1256.     ES:DI -> 16-byte blank-padded password
  1257. Return: AH = 00h success
  1258.         DL = handle
  1259. SeeAlso: AX=D000h
  1260.  
  1261. Format of LAT Session Control Block:
  1262. Offset    Size    Description
  1263.  00h 18 BYTEs    service name
  1264.  12h 18 BYTEs    node name (future use)
  1265.  24h 18 BYTEs    port name (future use)
  1266.  36h    DWORD    -> session stopped post routine
  1267.  3Ah    DWORD    -> service table overflow post routine
  1268.  3Eh    DWORD    -> transmit post routine
  1269.  42h    DWORD    -> receive post routine
  1270.  46h    WORD    session status
  1271.         04h circuit failure
  1272.         08h stop slot received
  1273.  48h    WORD    slot state (LAT driver use)
  1274.  4Ah    WORD    local credits (LAT driver use)
  1275.  4Ch    DWORD    -> VCB (LAT driver use)
  1276.  50h    WORD    backward slot (LAT driver use)
  1277.  52h    WORD    forward slot (LAT driver use)
  1278.  54h    WORD    remote slot ID (LAT driver use)
  1279.  56h    WORD    local slot ID (LAT driver use)
  1280.  58h    WORD    slot byte count (LAT driver use)
  1281.  5Ah    BYTE    remote credits (LAT driver use)
  1282.  5Bh 255 BYTEs    transmitted data slot
  1283. 15Ah    BYTE    number of receive data slots (4 recommended)
  1284. 15Bh    BYTE    number of occupied slots
  1285. 15Ch    BYTE    index of next receive slot to use
  1286. 15Dh    BYTE    index of current receive slot
  1287. 15Eh    WORD    pointer to first received character
  1288. 160h  N WORDs    pointers to receive slots (buffers); each is 259 bytes
  1289. Note:    set post routines to 0000h:0000h if polled operation will be used
  1290. --------N-6AD000DHFF-------------------------
  1291. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
  1292.     AX = D000h
  1293.     DH = FFh
  1294.     DL = handle
  1295. Return: AX = 0000h successful
  1296.        = 0001h no such session
  1297.        = 0002h session not running, try again later
  1298. SeeAlso: AH=D0h
  1299. --------N-6AD100DHFF-------------------------
  1300. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
  1301.     AX = D100h
  1302.     DH = FFh
  1303.     DL = handle
  1304. Return: AX = 0000h if successful
  1305.     AH bit 7 set if unable to send break
  1306. --------N-6AD300DHFF-------------------------
  1307. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
  1308.     AX = D300h
  1309.     DH = FFh
  1310. SeeAlso: AX=D400h
  1311. --------N-6AD400DHFF-------------------------
  1312. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
  1313.     AX = D400h
  1314.     DH = FFh
  1315.     CX = buffer size
  1316.     ES:BX -> buffer for LAT counters
  1317. Return: AX = 0000h counters copied into buffer
  1318.        = FFFFh buffer too small
  1319. SeeAlso: AX=D300h
  1320. --------N-6AD500DHFF-------------------------
  1321. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
  1322.     AX = D500h
  1323.     DH = FFh
  1324.     ES:BX -> 17-byte buffer for name
  1325. Return: AH = 00h if successful
  1326.        ES:BX buffer filled
  1327.     AX = FFFFh if end of table or no name available
  1328. Notes:    use this function to get the names of the hosts on the network
  1329.     successive calls are necessary to get all names
  1330. SeeAlso: AX=D600h
  1331. --------N-6AD600DHFF-------------------------
  1332. INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
  1333.     AX = D600h
  1334.     DH = FFh
  1335. Return: AX = number of service table entries
  1336.     BX = 0000h service table has not overflowed
  1337.        = FFFFh service table has overflowed
  1338. SeeAlso: AX=D500h
  1339. --------N-6B---------------------------------
  1340. INT 6B - DECnet DOS - PORT DRIVER
  1341. Note:    the installation check consists of testing for a signature area
  1342.       immediately preceding the interrupt handler
  1343. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  1344. Index:    installation check;DECnet DOS Port Driver
  1345.  
  1346. Format of signature area:
  1347. Offset    Size    Description
  1348.  -5    BYTE    major version number
  1349.  -4    BYTE    minor version number
  1350.  -3   3 BYTEs    signature (ASCII "PDV")
  1351. --------S-6B0000-----------------------------
  1352. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  1353.     AX = 0000h
  1354.     CX = length
  1355.     ES:BX -> buffer
  1356. Return: CX = number of bytes written
  1357. Program: NASI is Novell's NetWare Asynchronous Services Interface which runs
  1358.       on workstations; NACS is the NetWare Asynchronous Communications
  1359.       Services module which runs on servers
  1360. Note:    also supported by TelAPI and NPC NCSI
  1361. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h
  1362. --------S-6B0100-----------------------------
  1363. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  1364.     AX = 0100h
  1365.     CX = length of buffer
  1366.     ES:BX -> buffer
  1367. Return: CX = number of bytes read
  1368. Note:    also supported by TelAPI and NPC NCSI
  1369. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AX=FF02h
  1370. --------S-6B02-------------------------------
  1371. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  1372.     AH = 02h
  1373.     AL nonzero
  1374. Return: AL = 00h if present and OK
  1375. Note:    also supported by TelAPI and NPC NCSI
  1376. SeeAlso: AX=0700h
  1377. --------S-6B0600-----------------------------
  1378. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  1379.     AX = 0600h
  1380.     CX = command
  1381.         02h send break
  1382.         04h disconnect
  1383.         06h hold
  1384. Return: CF clear if successful
  1385.         AL = 00h
  1386.     CF set on error
  1387.         AX < 0
  1388. Note:    also supported by TelAPI and NPC NCSI
  1389. --------S-6B0700-----------------------------
  1390. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  1391.     AX = 0700h
  1392. Return: CH <> 00h if connection active
  1393. Notes:    also supported by TelAPI and NPC NCSI
  1394.     Novell TelAPI returns CX=FF01h and CF clear
  1395. SeeAlso: AH=02h,AH=10h
  1396. --------N-6B08-------------------------------
  1397. INT 6B - TelAPI - ???
  1398.     AH = 08h
  1399. Return: CF clear
  1400.         AL = 00h
  1401.         CX = 0000h
  1402. Note:    also clears ??? flag
  1403. SeeAlso: INT 14/AX=FF00h
  1404. --------S-6B10-------------------------------
  1405. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  1406.     AH = 10h
  1407.     ???
  1408. Return: ???
  1409. Note:    also supported by TelAPI
  1410. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  1411. --------S-6B11-------------------------------
  1412. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  1413.     AH = 11h
  1414.     ???
  1415. Return: ???
  1416. Note:    also supported by TelAPI
  1417. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  1418. --------S-6B12-------------------------------
  1419. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  1420.     AH = 12h
  1421.     ???
  1422. Return: ???
  1423. Note:    also supported by TelAPI
  1424. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  1425. --------S-6B13-------------------------------
  1426. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  1427.     AH = 13h
  1428.     ???
  1429. Return: ???
  1430. Note:    also supported by TelAPI
  1431. SeeAlso: AH=14h,AH=15h
  1432. --------S-6B14-------------------------------
  1433. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  1434.     AH = 14h
  1435.     ???
  1436. Return: ???
  1437. Note:    also supported by TelAPI
  1438. SeeAlso: AH=13h,AH=15h,AH=21h
  1439. --------S-6B15-------------------------------
  1440. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  1441.     AH = 15h
  1442.     ???
  1443. Return: ???
  1444. Note:    also supported by TelAPI
  1445. SeeAlso: AH=13h,AH=14h
  1446. --------S-6B16-------------------------------
  1447. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  1448.     AH = 16h
  1449.     ???
  1450. Return: ???
  1451. Note:    also supported by TelAPI
  1452. SeeAlso: AH=11h,AH=12h,AH=17h
  1453. --------S-6B17-------------------------------
  1454. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  1455.     AH = 17h
  1456.     ???
  1457. Return: ???
  1458. Note:    also supported by TelAPI
  1459. SeeAlso: AH=11h,AH=16h
  1460. --------S-6B18-------------------------------
  1461. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  1462.     AH = 18h
  1463.     ???
  1464. Return: ???
  1465. Note:    also supported by TelAPI
  1466. SeeAlso: AX=0000h,AH=12h,AH=19h
  1467. --------S-6B19-------------------------------
  1468. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  1469.     AH = 19h
  1470.     ???
  1471. Return: ???
  1472. Note:    also supported by TelAPI
  1473. SeeAlso: AX=0100h,AH=12h,AH=18h
  1474. --------S-6B1A-------------------------------
  1475. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  1476.     AH = 1Ah
  1477.     ???
  1478. Return: ???
  1479. SeeAlso: AH=12h,AH=1Bh
  1480. --------S-6B1B-------------------------------
  1481. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  1482.     AH = 1Bh
  1483.     ???
  1484. Return: ???
  1485. SeeAlso: AH=12h,AH=1Ah
  1486. --------S-6B1C-------------------------------
  1487. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE BUFFER CONTROL
  1488.     AH = 1Ch
  1489.     ???
  1490. Return: ???
  1491. SeeAlso: AH=1Dh,AH=1Eh
  1492. --------S-6B1D-------------------------------
  1493. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  1494.     AH = 1Dh
  1495.     ???
  1496. Return: ???
  1497. SeeAlso: AH=1Ch,AH=1Eh
  1498. --------S-6B1E-------------------------------
  1499. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  1500.     AH = 1Eh
  1501.     ???
  1502. Return: ???
  1503. SeeAlso: AH=1Ch,AH=1Dh
  1504. --------S-6B1F-------------------------------
  1505. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  1506.     AH = 1Fh
  1507.     ???
  1508. Return: ???
  1509. SeeAlso: AH=10h,AH=12h
  1510. --------S-6B21-------------------------------
  1511. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  1512.     AH = 21h
  1513.     ???
  1514. Return: ???
  1515. SeeAlso: AH=14h
  1516. ----------6B6B-------------------------------
  1517. INT 6B - Tandy SCHOOLMATE PLUS - API
  1518.     AH = 6Bh
  1519.     AL = E0h to FFh
  1520. --------v-6B---------------------------------
  1521. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  1522. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  1523. ----------6C---------------------------------
  1524. INT 6C - system resume vector (CONVERTIBLE)
  1525. ----------6C---------------------------------
  1526. INT 6C - DOS 3.2 Realtime Clock update
  1527. --------N-6C---------------------------------
  1528. INT 6C - DECnet DOS network scheduler
  1529. Notes:    the installation check consists of testing for a signature area
  1530.       immediately preceding the interrupt handler
  1531.     also supported by DEC Pathworks for DOS
  1532. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  1533. Index:    installation check;DECnet DOS scheduler
  1534.  
  1535. Format of signature area:
  1536. Offset    Size    Description
  1537.  -5    BYTE    major version number
  1538.  -4    BYTE    minor version number
  1539.  -3   3 BYTEs    signature (ASCII "SCH")
  1540. --------V-6D---------------------------------
  1541. INT 6D - VGA - internal
  1542. Note:    used by IBM, Paradise, Video7, and NCR
  1543. --------V-6D---------------------------------
  1544. INT 6D - ATI VGA Wonder - VIDEO BIOS ENTRY POINT
  1545.    points at the original INT 10 entry point set up by the ATI BIOS
  1546. SeeAlso: INT 10
  1547. --------V-6D---------------------------------
  1548. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  1549. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  1550.       of a call to INT 6D followed by an IRET.
  1551. --------N-6D---------------------------------
  1552. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  1553.     AH = function
  1554.     ???
  1555. Return: ???
  1556. Note:    the installation check consists of testing for a signature area
  1557.       immediately preceding the interrupt handler
  1558. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  1559. Index:    installation check;DECnet DOS Data Link Layer
  1560.  
  1561. Format of signature area:
  1562. Offset    Size    Description
  1563.  -5    BYTE    major version number
  1564.  -4    BYTE    minor version number
  1565.  -3   3 BYTEs    signature (ASCII "SCH")
  1566. --------N-6E---------------------------------
  1567. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  1568. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  1569.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  1570.     there is a signature/data area immediately prior to the interrupt
  1571.       handler which may be used as an installation check
  1572. Index:    installation check;DECnet DOS
  1573.  
  1574. Format of signature area:
  1575. Offset    Size    Description
  1576.  -5    BYTE    major version number
  1577.  -4    BYTE    minor version number
  1578.  -3   3 BYTEs    signature (ASCII "DNP")
  1579. --------N-6F---------------------------------
  1580. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  1581.     AX = function
  1582.         0000h enter terminal mode
  1583.         Return: AX = status
  1584.                 0000h no action requested
  1585.                 0001h screen save
  1586.         0001h reset interface and set configuration parameters
  1587.         DX = bitfields
  1588.             bits 2-0: model number
  1589.             bits 4-3: I/O address
  1590.             bits 6-5: DMA channel
  1591.         Return: nothing
  1592.         0002h set display parameters
  1593.         DX = bitfields
  1594.             bits 1-0: OIA mode
  1595.             bits 4-2: monitor support
  1596.         Return: nothing
  1597.         0003h read status
  1598.         Return: AX = status word (see below)
  1599.         0004h read cursor position
  1600.         Return: AX = cursor position
  1601.         0005h get character from device buffer
  1602.         DX = cursor position
  1603.         Return: AH = type (00h data, 01h attribute)
  1604.             AL = data or attribute character
  1605.         0006h send character
  1606.         DH = type (00h ASCII, 01h extended code)
  1607.         DL = ASCII character or extended code
  1608.         Return: nothing
  1609.         0007h set timeout
  1610.         DX = timeout in seconds
  1611.         Return: nothing
  1612.         0008h wait for location to be modified
  1613.         DX = cursor position
  1614.         Return: AX = status (0000h modified, nonzero timeout)
  1615.         0009h NOP
  1616.         000Ah restore display
  1617.         Return: nothing
  1618.         000Bh update device buffer
  1619.         Return: AX = cursor positoin
  1620.         000Ch write string to add information area
  1621.         DS:DX -> string
  1622.         Return: nothing
  1623.         000Dh maintenance operations
  1624.         DX = maintenance operation code
  1625.         Return: AX = operation status
  1626.         000Eh get control program version
  1627.         Return: AH = release number (major version)
  1628.             AL = level number (minor version)
  1629.         000Fh get microcode version
  1630.         Return: AH = release number (major version)
  1631.             AL = level number (minor version)
  1632.         0010h save or display graphics
  1633.         BX = length of data buffer
  1634.         CX = subfunction request code
  1635.         DS:DX -> data buffer
  1636.         Return: AX = return code
  1637.             CX = length of PIF data
  1638.         0011h perform structured field operation
  1639.         CX = request number
  1640.         DS:DX -> parameter list
  1641.         Return: AX = status word (see below)
  1642.             CX = error number
  1643.         0012h set cursor position for direct write buffer
  1644.         DX = new cursor position
  1645.         Return: AX = status word (see below)
  1646.         0013h write direct to buffer
  1647.         DL = character to be written
  1648.         DH = translation option
  1649.         Return: AX = status word (see below)
  1650.         0014h write direct to buffer without echo
  1651.         DL = character to be written
  1652.         DH = translation option
  1653.         Return: AX = status word (see below)
  1654.         0015h set direct write string length
  1655.         DX = string value
  1656.         Return: nothing
  1657.         0016h write string direct to buffer
  1658.         DS:DX -> string
  1659.         Return: AX = status word (see below)
  1660.         0017h write string direct to buffer, untranslated
  1661.         DS:DX -> string
  1662.         Return: AX = status word (see below)
  1663.         0018h get direct-write cursor position
  1664.         Return: AX = cursor position
  1665.         0019h convert row/column to cursor position
  1666.         DH = display row (1-43)
  1667.         DL = display column (1-132)
  1668.         Return: AX = cursor position
  1669.         001Ah convert cursor position to row/column
  1670.         DX = cursor position
  1671.         Return: AH = display row
  1672.             AL = display column
  1673.         001Bh find next field
  1674.         DX = initial cursor position
  1675.         Return: AX = field cursor position
  1676.         001Ch find previous field
  1677.         DX = initial cursor position
  1678.         Return: AX = field cursor position
  1679.         001Dh find next unprotected field
  1680.         DX = initial cursor position
  1681.         Return: AX = field cursor position
  1682.         001Eh find previous unprotected field
  1683.         DX = initial cursor position
  1684.         Return: AX = field cursor position
  1685.         001Fh find next protected field
  1686.         DX = initial cursor position
  1687.         Return: AX = field cursor position
  1688.         0020h find previous protected field
  1689.         DX = initial cursor position
  1690.         Return: AX = field cursor position
  1691.         0021h masked search forward
  1692.         DH = mask
  1693.         DL = search pattern
  1694.         Return: AX = cursor position or 0000h
  1695.         0022h masked search backward
  1696.         DH = mask
  1697.         DL = search pattern
  1698.         Return: AX = cursor position or 0FFFh
  1699.         0023h find field length
  1700.         DX = cursor position
  1701.         Return: AX = field length
  1702.         0024h read field
  1703.         DS:DX -> buffer for field contents
  1704.         Return: AX = status word (see below)
  1705.         0025h read screen
  1706.         DS:DX -> buffer for screen contents
  1707.         Return: AX = status word (see below)
  1708.         0026h read buffer untranslated
  1709.         DX = cursor position
  1710.         Return: AX = buffer code
  1711.             CX:BX -> 3278/79 device buffer image
  1712.         0027h enable/disable keyboard
  1713.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  1714.         Return: nothing
  1715.         0028h select host session
  1716.         DL = session short name
  1717.         Return: AX = session information
  1718.         0029h retrieve host session name
  1719.         AX = short name (DFT) or 0000h (not available, CUT mode)
  1720.         002Ah get current device buffer size
  1721.         Return: AX = device buffer size
  1722.             CX = segment of EAB
  1723.         002Bh arm modified location trigger
  1724.         DX = cursor position
  1725.         Return: AX = status (0000h not available, 0001h successful)
  1726.  
  1727. Bitfields for status word:
  1728.  bits 0,1 cursor type
  1729.  bit 2    cursor inhibited
  1730.  bit 3    display inhibited
  1731.  bit 4    feature step inhibited
  1732.  bit 5    480-character format code
  1733.  bits 6,7 unused
  1734.  bits 8-10 model number (2-5)
  1735.  bit 11    unit has been reset by controller (bit cleared after status returned)
  1736.  bit 12    buffer has been written into (bit cleared after status returned)
  1737.  bit 13    alarm has been sounded (bit cleared after status returned)
  1738.  bits 14-15 monitor type (01 mono, 10 color, 11 hybrid)
  1739. --------N-6F00-------------------------------
  1740. INT 6F - 10NET - LOGIN
  1741.     AH = 00h
  1742.     DS:DX -> login record (see below)
  1743. Return: CL = security level
  1744.     AX = status (see below)
  1745. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  1746.  
  1747. Format of login record:
  1748. Offset    Size    Description
  1749.  00h  8 BYTEs    user name
  1750.  08h  8 BYTEs    password
  1751.  10h 12 BYTEs    name of SuperStation
  1752.  
  1753. Values for status:
  1754.  0000h    successful
  1755.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  1756.  02FFh    "NET_NERR" network (hardware) error
  1757.  03FFh    "PAS_NERR" invalid password
  1758.  04FFh    "LRN_NERR" local resource not available
  1759.  05FFh    "SRN_NERR" server resource not available
  1760.  06FFh    "LNM_NERR" already logged in under different name
  1761.  07FFh    "LSF_NERR" login security failure (node)
  1762.  08FFh    "NLI_NERR" not logged in
  1763.  09FFh    "DIVZ_NERR" position calc error
  1764.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  1765.  0BFFh    "RFNC_NERR" request function not in range
  1766.  0CFFh    "NSFH_NERR" no more server file handle entries left
  1767.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  1768.  0EFFh    "NUFH_NERR" no more user file handle entries left
  1769.  0FFFh    "CHAT_NERR" chat permit not on
  1770.  10FFh    "NSRV_NERR" not a server on request
  1771.  11FFh    "NOBD_NERR" no transporter board error
  1772.  12FFh    "STO_NERR" time out on send
  1773.  13FFh    "INF_NERR" item not found (spool item not on queue)
  1774.  14FFh    "DACS_NERR" DOS access incompatible
  1775.  15FFh    "RLOCK_NERR" record already locked
  1776.  16FFh    "IVP_NERR" invalid parameter
  1777.  17FFh    "RLTO_NERR" record lock time out error
  1778.  18FFh    "CSPL_NERR" currently spooling to named device
  1779.  19FFh    "DRP_NERR" dropped receive message (throttle)
  1780.  1AFFh    "SOPV_NERR" open sharing violation
  1781.  1BFFh    "NTUF_NERR" no more tuf entries left
  1782.  1CFFh    "NOWN_NERR" not file owner on open
  1783.  1DFFh    "RSEC_NERR" read security not passed
  1784.  1EFFh    "WSEC_NERR" write security not passed
  1785.  1FFFh    "GSEC_NERR" group security not passed
  1786.  20FFh    "SEC1_NERR" security file failure
  1787.  21FFh    "ACT1_NERR" activity file failure
  1788.  22FFh    "SPL1_NERR" spool control file failure
  1789.  23FFh    "NMT_NERR" device not mounted (spooling)
  1790.  24FFh    "RSPL_NERR" spool file has not been terminated
  1791.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  1792.  26FFh    "DUP_NERR" duplicate node ID
  1793.  27FFh    "FNF_NERR" file not found error
  1794.  28FFh    "NMF_NERR" no more files
  1795.  29FFh    "UN_NERR" unknown internal system error
  1796.  2AFFh    "QCP_NERR" print queue is full or corrupted
  1797.  2BFFh    "IFNC_NERR" invalid function
  1798.  2CFFh    "IVH_NERR" invalid handle
  1799.  2DFFh    "TOF_NERR" too many files opened
  1800.  2EFFh    "PNF_NERR" path not found
  1801.  2FFFh    "SACT_NERR" named file is active
  1802. ---10NET v5.0+ ---
  1803.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  1804.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  1805.  32FFh    "RECV_NERR" driver could not be put in receive mode
  1806.  33FFh    "NRLT_NERR" no more RLTAB entries left
  1807.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  1808.  35FFh    "IVD_NERR" invalid device
  1809.  36FFh    "NALV_NERR" netname access level violated
  1810.  37FFh    "NPIDNF_NERR" network path not found
  1811.  38FFh    "SP_NERR" server is paused
  1812.  39FFh    "TMNM_NERR" too many remote user names
  1813.  3AFFh    "DUPD_NERR" duplicate network device
  1814.  3BFFh    "DIU_NERR" shared device in use, can't delete
  1815.  3CFFh    "NNWD_NERR" network name was deleted
  1816.  3DFFh    "NPFS_NERR" not enough space for print file
  1817.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  1818.  3FFFh    "NB_NERR" network busy
  1819.  40FFh    "NDNLE_NERR" network device no longer exists
  1820.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  1821.  42FFh    "FINT24_NERR" Fail on INT 24h
  1822.  43FFh    "PEXP_NERR" password expired
  1823.  44FFh    "NPUP_NERR" new password error
  1824.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  1825.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  1826. Index:    error codes;10Net|10Net;error codes
  1827. --------N-6F01-------------------------------
  1828. INT 6F - 10NET - LOGOFF
  1829.     AH = 01h
  1830.     DS:DX -> superstation ID or nulls (12 bytes)
  1831. Return: CX = number of files closed
  1832.     AX = status (see also AH=00h)
  1833.         08FFh superstation ID not already logged in
  1834. SeeAlso: AH=00h,AH=81h
  1835. --------N-6F02-------------------------------
  1836. INT 6F - 10NET - STATUS OF NODE
  1837.     AH = 02h
  1838.     DS:DX -> 512-byte status record (see below)
  1839. Return:    CF clear if successful
  1840.     CF set on error
  1841.         AX = error code (see AH=00h)
  1842. SeeAlso: INT 21/AX=5E01h"10NET"
  1843.  
  1844. Format of node status record:
  1845. Offset    Size    Description
  1846.  00h  8 BYTEs    user name (0 if none)
  1847.  08h    BYTE    station type
  1848.         00h workstation
  1849.         01h superstation
  1850.         02h gateway station
  1851.         03h gateway active
  1852.         04h logged into multiple superstations
  1853.         05h reserved
  1854.  09h 24 BYTEs    list of superstations logged into more than one superstation
  1855.  21h 12 BYTEs    node ID
  1856.  2Dh    WORD    message count for this station (send for user node, receive for
  1857.         superstations)
  1858. ---for superstations only---
  1859.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  1860.  31h    BYTE    user service flags (see below)
  1861.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  1862.  33h    BYTE    number of unprinted spool files
  1863.  34h    BYTE    number of opened files
  1864.  35h    BYTE    number of logged on nodes
  1865.  36h    BYTE    primary drive (1=A:)
  1866.  37h    BYTE    reserved
  1867.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  1868. 1F4h  3 BYTEs    time: sec/min/hrs
  1869. 1F7h  3 BYTEs    date: day/mon/year-1980
  1870.  
  1871. Bitfields for user service flags:
  1872.  bit 7    gate
  1873.  bit 6    print permit on
  1874.  bit 4    SUBMIT is on
  1875.  bit 3    mail waiting for node
  1876.  bit 2    calendar waiting for you
  1877.  bit 1    news waiting for you
  1878.  bit 0    mail waiting for you
  1879. --------W-6F0204-----------------------------
  1880. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  1881.     AX = 0204h
  1882. Return: AX = status
  1883.         0000h switch is allowed
  1884.         other switch not allowed
  1885. Note:    intercepting this call will allow a DOS application to ensure that
  1886.       Windows will not switch away from it.
  1887. --------N-6F03-------------------------------
  1888. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  1889.     AH = 03h
  1890.     DS:DI -> node ID (optional)
  1891. Return: ES:BX -> configuration table
  1892. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  1893.  
  1894. Format of configuration table:
  1895. Offset    Size    Description
  1896. -41    WORD    local device table address
  1897. -39    WORD    extended network error mapping table address
  1898. -37    WORD    shared device table address
  1899. -35    WORD    mounted device table address
  1900. -33    BYTE    receive buffer counter
  1901. -32    BYTE    collect buffer counter
  1902. -31    WORD    TUF address
  1903. -29    BYTE    enable flag
  1904. -28    BYTE    FCB keep flag
  1905. -27    WORD    reserved
  1906. ---up to here, 10NET v3.3---
  1907. -25    WORD    count of dropped Send6F
  1908. -23    WORD    buffer start address
  1909. -21    WORD    comm driver base address
  1910. -19    WORD    send/receive retry count
  1911. -17    BYTE    number of 550ms loops before timeout
  1912. -16    WORD    UFH address
  1913. -14    WORD    CDIR address
  1914. -12    WORD    LTAB address
  1915. -10    WORD    SFH address
  1916. -8    WORD    FTAB address
  1917. -6    WORD    RLTAB address
  1918. -4    WORD    SMI address
  1919. -2    WORD    NTAB address
  1920.  00h    WORD    address of first CT_DRV
  1921.  02h    BYTE    number of DRV entries
  1922.  03h  8 BYTEs    login name
  1923.  0Bh 12 BYTEs    node ID (blank-padded)
  1924.  17h  6 BYTEs    node address
  1925.  1Dh    BYTE    flag
  1926.  1Eh    BYTE    CT_CFLG (chat permit)
  1927.         bit 1: sound bell
  1928.         bit 0: CHAT permit
  1929.  1Fh    BYTE    CT_PSFLG
  1930.         bit 5: PRINT permit
  1931.         bit 4: KB initiated
  1932.         bit 3: CHAT called FOXPTRM
  1933.         bit 2: SUBMIT active
  1934.         bit 1: SUBMIT received
  1935.         bit 0: SUBMIT permit
  1936.  20h    BYTE    in 10Net flag
  1937.  21h    WORD    receive message count
  1938.  23h    WORD    send message count
  1939.  25h    WORD    retry count
  1940.  27h    WORD    failed count
  1941.  29h    WORD    driver errors
  1942.  2Bh    WORD    dropped responses/CHATs
  1943.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  1944.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  1945.  3Ch    BYTE    active CB channel
  1946.  3Dh    BYTE    received 6F messages on queue
  1947.  3Eh  9 BYTEs    activity counters for channels 1-9
  1948. ---beyond here, 10NET v3.3---
  1949.  47h    BYTE    bit 0: RS232 gate
  1950.         bit 1: Send6F gate (user set)
  1951.  48h    DWORD    pointer into gate (user set)
  1952.  4Ch    DWORD    pointer into 10Net send
  1953.  50h  N WORDs    addresses of timer blocks
  1954. --------N-6F04-------------------------------
  1955. INT 6F - 10NET - SEND
  1956.     AH = 04h
  1957.     DS:BX -> send record (see below)
  1958.     DS:DX -> data (max 1024 bytes)
  1959. Return:    CF clear if successful
  1960.     CF set on error
  1961.         AX = error code (see AH=00h)
  1962. SeeAlso: AH=05h,AH=09h,AH=0Ah
  1963.  
  1964. Format of send record:
  1965. Offset    Size    Description
  1966.  00h 12 BYTEs    receiving node's ID
  1967.         if first byte has high-order bit set, message is directed to
  1968.           the CT_RGATE vector at the receiver
  1969.         if second byte is 00h, first byte is taken as a CB
  1970.           channel number and delivered to all nodes on same channel
  1971.  0Ch    WORD     length of data at DX
  1972. --------N-6F05-------------------------------
  1973. INT 6F - 10NET - RECEIVE
  1974.     AH = 05h
  1975.     CX = number of seconds before timeout
  1976.     DS:DX -> receive buffer (see below)
  1977. Return:    CF clear if successful
  1978.         AH = FEh if dequeued message is a CB message
  1979.     CF set on error
  1980.         AX = error code (see AH=00h)
  1981. SeeAlso: AH=04h
  1982.  
  1983. Format of receive buffer:
  1984. Offset    Size    Description
  1985.  00h 12 BYTEs    sending node's ID
  1986.  0Ch    WORD    length of message
  1987.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1988. --------N-6F07-------------------------------
  1989. INT 6F - 10NET - LOCK HANDLE
  1990.     AH = 07h
  1991.     BX = file handle
  1992.     CX:DX = starting offset in file
  1993.     SI = record length
  1994. Return:    CF clear if successful
  1995.     CF set on error
  1996.         AX = error code (see also AH=00h)
  1997.         0002h file not found
  1998. SeeAlso: AH=08h,AH=0Fh,INT 21/AH=5Ch
  1999. --------N-6F08-------------------------------
  2000. INT 6F - 10NET - UNLOCK HANDLE
  2001.     AH = 08h
  2002.     BX = file handle
  2003.     AL = mode
  2004.         00h unlock all
  2005.         01h unlock record at CX:DX
  2006. Return:    CF clear if successful
  2007.     CF set on error
  2008.         AX = error code (see also AH=00h)
  2009.         0002h file not found
  2010. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  2011. --------N-6F09-------------------------------
  2012. INT 6F - 10NET - SUBMIT
  2013.     AH = 09h
  2014.     DS:BX -> submit record (see below)
  2015. SeeAlso: AH=04h
  2016.  
  2017. Format of submit record:
  2018. Offset    Size    Description
  2019.  00h 12 BYTEs    destination node ID (must be logged in)
  2020.  0Ch    WORD    length+2 of following 'command line' text
  2021.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  2022. --------N-6F0A-------------------------------
  2023. INT 6F - 10NET - CHAT
  2024.     AH = 0Ah
  2025.     DS:BX -> control parameters (see below)
  2026.     DS:DX -> chat message (see below)
  2027. SeeAlso: AH=04h,AH=8Ah
  2028.  
  2029. Format of control parameters:
  2030. Offset    Size    Description
  2031.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  2032.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  2033.  10h 12 BYTEs    destination node ID
  2034.  
  2035. Format of chat message:
  2036. Offset    Size    Description
  2037.  00h    WORD    length+2 of following text
  2038.  02h  N BYTEs    text, max 101 bytes
  2039. --------N-6F0B-------------------------------
  2040. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  2041.     AH = 0Bh
  2042.     AL = drive number or 0
  2043.     ES:SI = Ethernet address or 0
  2044.     DS:BX -> 31-byte ASCIZ semaphore name
  2045. Return: AL = status (see below)
  2046. Note:    same as INT 60/AH=12h
  2047. SeeAlso: AH=0Ch,INT 60/AH=12h
  2048.  
  2049. Values for status:
  2050.  00h    successful
  2051.  01h    semaphore currently locked
  2052.  02h    server not responding
  2053.  03h    invalid semaphore name
  2054.  04h    semaphore list is full
  2055.  05h    invalid drive ID
  2056.  06h    invalid Ethernet address
  2057.  07h    not logged in
  2058.  08h    write to network failed
  2059.  09h    semaphore already logged in this CPU
  2060. Index:    error codes;10-Net|10-Net;error codes
  2061. --------N-6F0C-------------------------------
  2062. INT 6F - 10NET - UNLOCK SEMAPHORE
  2063.     AH = 0Ch
  2064.     AL = drive number or 0
  2065.     ES:SI = Ethernet address or 0
  2066.     DS:BX -> 31-byte ASCIZ semaphore name
  2067. Return: AL = status (see also AH=0Bh)
  2068.         01h semaphore not locked
  2069. Note:    same as INT 60/AH=13h
  2070. SeeAlso: AH=0Bh,INT 60/AH=13h
  2071. --------N-6F0D-------------------------------
  2072. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  2073.     AH = 0Dh
  2074.     AL = type code
  2075.         01h return superstations only
  2076.         02h return non-superstations only
  2077.         otherwise return all
  2078.     CX = length of data buffer
  2079.     DS:DX -> array of records to be filled (see below)
  2080. Return: CL = number of records returned (responding stations)
  2081. SeeAlso: AH=16h,AH=8Dh
  2082.  
  2083. Format of station record:
  2084. Offset    Size    Description
  2085.  00h 12 BYTEs    node ID
  2086.  0Ch    BYTE    flags
  2087.         bit 1: workstation
  2088.         bit 2: superstation
  2089.         bit 3: xgate
  2090.         bit 4: active gate
  2091. ---if AL = 01h---
  2092.  0Dh    BYTE    version number
  2093.  0Eh    WORD    level number of 10Net software in responding node
  2094. ---if AL = 02h---
  2095.  0Dh  8 BYTEs    user ID
  2096.  15h    BYTE    version number
  2097.  16h    WORD    level number
  2098. --------N-6F0E-------------------------------
  2099. INT 6F - 10NET - SPOOL/PRINT
  2100.     AH = 0Eh
  2101.     DS:DX -> spool/print record (see below)
  2102. Return:    CF clear if successful
  2103.     CF set on error
  2104.         AX = error code (see also AH=00h)
  2105.         17FFh device not mounted
  2106.         18FFh already spooling to named device
  2107.  
  2108. Values for operation code:
  2109.  0000h    initiate spool
  2110.  0001h    abort print
  2111.  0002h    close spool
  2112.  0003h    delete spool
  2113.  0004h    print
  2114.  0005h    get report info
  2115.  0006h    set chat template
  2116.  0007h    queue
  2117.  0008h    return queue
  2118.  0009h    queue non-spooled file for printing
  2119.  
  2120. Format of Spool/Print record:
  2121. Offset    Size    Description
  2122.  00h    WORD    operation code (see above)
  2123.  02h 11 BYTEs    file name in FCB format
  2124. ---if operation code = 00h or 06h---
  2125.  0Dh    BYTE    notification flags (see below)
  2126.  0Eh    BYTE    days to keep (FFh=forever)
  2127.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  2128.         bits 4-7: remote drive to store spool file (1=A,...)
  2129.  10h    WORD    length of following data area
  2130.  12h  N BYTEs    up to 64 bytes of description
  2131. ---if operation code = 03h---
  2132.  0Dh  8 BYTEs    user ID to associate with filename
  2133. ---if operation code = 04h---
  2134.  0Dh    WORD    block number
  2135.  0Fh  8 BYTEs    user ID to associate with filename
  2136. ---if operation code = 05h---
  2137.  0Dh    BYTE    RRN to start retrieve
  2138.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  2139.         bit 3: if set, return entries for all users
  2140.  0Fh    WORD    length of following area
  2141.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  2142. ---if operation code = 07h---
  2143.  0Dh    BYTE    queue number
  2144.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  2145.  0Fh    WORD    number of bytes of test print to be done
  2146.  11h    BYTE    code: 01h print device
  2147.               02h test print count
  2148.               03h prn
  2149. ---if operation code = 08h---
  2150.  0Dh    BYTE    queue location or $SCNTL location to start access
  2151.             returns next item for access:
  2152.                 00h-7Fh queued items
  2153.                 80h-FEh non-queued, non-printed items
  2154.                 FFh    no more items
  2155.  0Eh    WORD    unused
  2156.  10h    WORD    length of following area
  2157.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  2158. ---if operation code = 09h---
  2159.  0Dh  3 BYTEs    unused
  2160.  10h  N BYTEs    path to non-spooled file to be queued for printing
  2161.  
  2162. Bitfields for notification flags:
  2163.  bit 7    queue to top
  2164.  bit 6    do ID page
  2165.  bit 5    no form feed
  2166.  bit 4    reserved
  2167.  bit 3    explicit queuing only
  2168.  bit 2    notify at print completion
  2169.  bit 1    notify server operator, with reply
  2170.  bit 0    notify at print start
  2171.  
  2172. Format of $SCNTL record:
  2173. Offset    Size    Description
  2174.  00h  8 BYTEs    user ID
  2175.  08h 11 BYTEs    filename in FCB format
  2176.  13h  6 BYTEs    node ID
  2177.  19h  3 BYTEs    creation date
  2178.  1Ch    BYTE    notification flags (see above)
  2179.  1Dh    BYTE    retention time in days
  2180.  1Eh    BYTE    printing device (LPTx)
  2181.  1Fh  3 BYTEs    date last printed (0 = never)
  2182.  22h    BYTE    device containing spoolfile
  2183.  23h    WORD    bytes to print for test print
  2184.  25h    WORD    block number to start print
  2185.  27h    BYTE    reserved
  2186. --------N-6F0F-------------------------------
  2187. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  2188.     AH = 0Fh
  2189.     ???
  2190. Return: ???
  2191. SeeAlso: AH=07h,AH=08h
  2192. --------N-6F10-------------------------------
  2193. INT 6F - 10NET - ATTACH/DETACH PRINTER
  2194.     AH = 10h
  2195.     AL = subfunction
  2196.         00h initiate spooling if LPT1 is mounted
  2197.         01h terminate spooling if LPT1 is mounted
  2198. SeeAlso: INT 21/AX=5D08h
  2199. --------N-6F11-------------------------------
  2200. INT 6F - 10NET - LOCK FCB
  2201.     AH = 11h
  2202.     AL = mode
  2203.         01h sequential
  2204.         02h random
  2205.         03h random block
  2206.         CX = number of records
  2207.     DS:DX -> FCB (see INT 21/AH=0Fh)
  2208. Return:    CF clear if successful
  2209.     CF set on error
  2210.         AX = error code (see also AH=00h)
  2211.         0002h file not found
  2212. SeeAlso: AH=12h
  2213. --------N-6F12-------------------------------
  2214. INT 6F - 10NET - UNLOCK FCB
  2215.     AH = 12h
  2216.     AL = mode
  2217.         00h sequential
  2218.         01h random
  2219.         02h random block
  2220.         CX = number of records
  2221.     DS:DX -> FCB (see INT 21/AH=0Fh)
  2222. Return:    CF clear if successful
  2223.     CF set on error
  2224.         AX = error code (see also AH=00h)
  2225.         0002h file not found
  2226. SeeAlso: AH=11h
  2227. --------N-6F13-------------------------------
  2228. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  2229.     AH = 13h
  2230.     DS:DX -> node ID, 12 bytes blank-padded
  2231. Return:    CF clear if successful
  2232.         ES:BX = configuration table address on given machine
  2233.     CF set on error
  2234.         AX = error code (see AH=00h)
  2235. SeeAlso: AH=03h
  2236. --------N-6F14-------------------------------
  2237. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  2238.     AH = 14h
  2239.     BX:SI = address of remote memory
  2240.     CX = length (<=1024 bytes)
  2241.     DS:DX -> node ID, 12 bytes blank-padded
  2242.     DS:DI -> area to receive remote memory image
  2243. Return:    CF clear if successful
  2244.         CX = amount of memory copied to DS:SI
  2245.     CF set on error
  2246.         AX = error code (see AH=00h)
  2247. --------N-6F1501-----------------------------
  2248. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  2249.     AX = 1501h
  2250.     BX = zero-based index
  2251.     DS:SI -> node ID, 12 bytes blank-padded
  2252.     ES:DI -> 85-byte buffer for shared device table entry (see below)
  2253. Return:    CF clear if successful
  2254.         ES:DI buffer contains shared device table entry of BXth device
  2255.     CF set on error
  2256.         AX = error code (see AH=00h)
  2257. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  2258.  
  2259. Format of shared device table entry:
  2260. Offset    Size    Description
  2261.  00h  8 BYTEs    device
  2262.  08h  8 BYTEs    alias
  2263.  10h 64 BYTEs    path
  2264.  50h  8 BYTEs    password
  2265.  58h    BYTE    access
  2266.  59h  4 BYTEs    mask
  2267. --------N-6F1502-----------------------------
  2268. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  2269.     AX = 1502h
  2270.     DS:SI -> node ID, 12 bytes blank-padded
  2271.     ES:DI -> valid shared device table entry
  2272. Return:    CF clear if successful
  2273.     CF set on error
  2274.         AX = error code (see AH=00h)
  2275. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  2276. --------N-6F1503-----------------------------
  2277. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  2278.     AX = 1503h
  2279.     BX = zero-based index
  2280.     DS:SI -> node ID, 12 bytes blank-padded
  2281. Return:    CF clear if successful
  2282.     CF set on error
  2283.         AX = error code (see AH=00h)
  2284. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  2285. --------N-6F16-------------------------------
  2286. INT 6F - 10NET v5.0 - "GL WHO" - ???
  2287.     AH = 16h
  2288.     ???
  2289. Return: ???
  2290. SeeAlso: AH=0Dh
  2291. --------N-6F17-------------------------------
  2292. INT 6F - 10NET v3.3+ - MOUNT
  2293.     AH = 17h
  2294.     AL = local drive number (0=A:)
  2295.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  2296.     DS:DX -> node ID, 12 bytes blank-padded
  2297. Return:    CF clear if successful
  2298.     CF set on error
  2299.         AX = error code (see AH=00h)
  2300. SeeAlso: AH=18h
  2301. --------N-6F18-------------------------------
  2302. INT 6F - 10NET v3.3+ - UNMOUNT
  2303.     AH = 18h
  2304.     AL = local drive number (0=A:)
  2305.     BL = type
  2306.         00h        disk
  2307.         01h-03h LPTn
  2308.         04h,05h COMx
  2309. Return:    CF clear if successful
  2310.     CF set on error
  2311.         AX = error code (see AH=00h)
  2312. SeeAlso: AH=17h
  2313. --------N-6F19-------------------------------
  2314. INT 6F U - 10NET v5.0 - AUDIT
  2315.     AH = 19h
  2316.     ???
  2317. Return: ???
  2318. SeeAlso: AH=99h
  2319. --------N-6F1A-------------------------------
  2320. INT 6F U - 10NET v5.0 - "BULL" - ???
  2321.     AH = 1Ah
  2322.     ???
  2323. Return: ???
  2324. --------N-6F1B-------------------------------
  2325. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  2326.     AH = 1Bh
  2327.     ???
  2328. Return: ???
  2329. --------N-6F1C-------------------------------
  2330. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  2331.     AH = 1Ch
  2332.     ???
  2333. Return: ???
  2334. --------N-6F1D-------------------------------
  2335. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  2336.     AH = 1Dh
  2337.     ???
  2338. Return: ???
  2339. --------N-6F1E-------------------------------
  2340. INT 6F U - 10NET v5.0 - "SCHED" - ???
  2341.     AH = 1Eh
  2342.     ???
  2343. Return: ???
  2344. --------N-6F1F-------------------------------
  2345. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  2346.     AH = 1Fh
  2347.     ???
  2348. Return: ???
  2349. --------N-6F20-------------------------------
  2350. INT 6F U - 10NET v5.0 - ???
  2351.     AH = 20h
  2352.     ???
  2353. Return: ???
  2354. --------N-6F21-------------------------------
  2355. INT 6F U - 10NET v5.0 - ???
  2356.     AH = 21h
  2357.     ???
  2358. Return: ???
  2359. --------N-6F22-------------------------------
  2360. INT 6F U - 10NET v5.0 - ???
  2361.     AH = 22h
  2362.     ???
  2363. Return: ???
  2364. --------b-6F22--BP0012-----------------------
  2365. INT 6F - HP HIL Vectras - EXTENDED BIOS - READ CMOS MEMORY
  2366.     AH = 22h
  2367.     BP = 0012h (ID of V_SYSTEM driver)
  2368.     BL = address of CMOS byte to read
  2369. Return: AH = status
  2370.     AL = byte read
  2371.     BP, DS destroyed
  2372. Note:    supported by ES, QS, and RS series HP Vectras
  2373. SeeAlso: BP=0012h/AH=24h
  2374. --------b-6F24--BP0012-----------------------
  2375. INT 6F - HP HIL Vectras - EXTENDED BIOS - WRITE CMOS MEMORY
  2376.     AH = 24h
  2377.     BP = 0012h (ID of V_SYSTEM driver)
  2378.     BL = address of CMOS byte to write
  2379.     AL = new value
  2380. Return: AH = status
  2381.     BP, DS destroyed
  2382. SeeAlso: BP=0012h/AH=22h
  2383. --------N-6F80-------------------------------
  2384. INT 6F - 10NET v5.0 - LOGIN
  2385.     AH = 80h
  2386.     DS:DX -> login record (see below)
  2387. Return: CF clear if successful
  2388.         BL = number of days until password expires (00h = never)
  2389.         CL = security level
  2390.     CF set on error
  2391.         AX = status (see AH=00h)
  2392. SeeAlso: AH=00h,AH=81h
  2393.  
  2394. Format of login record:
  2395. Offset    Size    Description
  2396.  00h  8 BYTEs    user name
  2397.  08h  8 BYTEs    password
  2398.  10h 15 BYTEs    server node ID
  2399.  1Fh  8 BYTEs    new password
  2400.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  2401. --------N-6F81-------------------------------
  2402. INT 6F - 10NET v5.0 - LOGOUT
  2403.     AH = 81h
  2404.     DS:DX -> server node ID (DX=0000h for universal logout)
  2405. Return: AX = status (see AH=00h)
  2406. SeeAlso: AH=01h,AH=80h
  2407. --------N-6F8A-------------------------------
  2408. INT 6F - 10NET v5.0 - CHAT
  2409.     AH = 8Ah
  2410.     DS:BX -> chat parameters (see below)
  2411.     DS:DX -> chat message (see below)
  2412. Return: CF clear if successful
  2413.     CF set on error
  2414.         AX = status (see AH=00h)
  2415. SeeAlso: AH=0Ah
  2416.  
  2417. Format of chat parameters:
  2418. Offset    Size    Description
  2419.  00h  8 BYTEs    sender's user name
  2420.  08h  8 BYTEs    destination user name
  2421.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  2422.  
  2423. Format of chat message:
  2424. Offset    Size    Description
  2425.  00h    WORD    message length
  2426.  02h  N BYTEs    chat message contents
  2427. --------N-6F8D-------------------------------
  2428. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  2429.     AH = 8Dh
  2430.     BX = service mask (see below)
  2431.     CX = length of buffer
  2432.     DS:DX -> buffer for array of Who data structures (see below)
  2433. Return: CF clear if successful
  2434.         CX = number of nodes matching service mask
  2435.         DS:DX buffer filled
  2436.     CF set on error
  2437.         AX = status (see AH=00h)
  2438. SeeAlso: AH=0Dh
  2439.  
  2440. Bitfields for service mask:
  2441.  bit 0    workstation
  2442.  bit 1    file server
  2443.  bit 2    print server
  2444.  bit 3    de-spool server
  2445.  
  2446. Format of Who data structure:
  2447. Offset    Size    Description
  2448.  00h  8 BYTEs    user name
  2449.  08h 15 BYTEs    node ID
  2450.  17h  3 BYTEs    unique portion of Ethernet address
  2451.  1Ah    BYTE    Who group number
  2452.  1Bh    WORD    service mask (see above)
  2453.  1Dh    DWORD    serial number
  2454.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  2455.  22h    BYTE    chat mask (see below)
  2456.  23h    BYTE    internal system bits (see below)
  2457.  24h  9 BYTEs    version number in format MM.mm.xxx
  2458.  2Dh    BYTE    number of shared directories
  2459.  2Eh    BYTE    number of shared printer queues
  2460.  
  2461. Bitfields for chat mask:
  2462.  bit 0    chat permitted
  2463.  bit 1    bell enabled
  2464.  bit 2    chat keyboard initiated
  2465.  bit 3    in INT 16 handler
  2466.  bit 4    in Get Input
  2467.  bit 5    display has timed out
  2468.  bit 6    chat is idle
  2469.  
  2470. Bitfields for internal system bits:
  2471.  bit 0    submit permitted
  2472.  bit 1    submit initiated
  2473.  bit 2    submit executing
  2474.  bit 3    internal client call/chat/spool/autospool
  2475.  bit 4    in spool termination
  2476.  bit 5    print permitted
  2477.  bit 6    waiting for keyboard input
  2478. --------N-6F9501-----------------------------
  2479. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  2480.     AX = 9501h
  2481.     BX = zero-based index
  2482.     DS:SI -> server's node ID
  2483.     ES:DI -> buffer for shared device structure (see below)
  2484. Return: CF clear if successful
  2485.     CF set on error
  2486.         AX = status (see AH=00h)
  2487. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  2488.  
  2489. Format of shared device structure:
  2490. Offset    Size    Description
  2491.  00h  8 BYTEs    alias
  2492.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  2493.  09h    BYTE    access rights
  2494.         bit 0: read
  2495.         bit 1: write
  2496.         bit 2: create
  2497.  0Ah  8 BYTEs    password
  2498.  12h 32 BYTEs    comment
  2499. ---directory---
  2500.  32h 64 BYTEs    pathname of shared directory
  2501. ---print queue---
  2502.  32h    BYTE    notification bit mask (see below)
  2503.  33h    BYTE    job control bit mask (see below)
  2504.  34h    WORD    number of days to retain file
  2505.  36h    WORD    test print length
  2506.  38h    BYTE    number of copies to print
  2507.  39h    BYTE    compression algorithm
  2508.  3Ah    BYTE    tab width (00h = don't expand)
  2509.  3Bh    BYTE    priority
  2510.  3Ch    WORD    time to open queue (FFFFh = always)
  2511.  3Eh    WORD    time to close queue
  2512.  40h    WORD    pause following queue switch, in clock ticks
  2513.  42h    WORD    pause between print jobs, in clock ticks
  2514.  44h    BYTE    associate queue file existence mask
  2515.         bit 0: queue switch file exists
  2516.         bit 1: initiate file exists
  2517.         bit 2: abort file exists
  2518.  45h  6 BYTEs    character sequence for page eject
  2519.  4Bh    BYTE    status of print queue
  2520.         bit 0: queue is closed
  2521.  4Ch    WORD    number of jobs on queue
  2522.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  2523.  50h    BYTE    number of print devices in printer pool
  2524.  51h    WORD    offset of first print device structure (FFFFh if empty)
  2525.  
  2526. Bitfields for notification flags:
  2527.  bit 0    user at print start
  2528.  bit 1    operator at start, with reply
  2529.  bit 2    user at print completion
  2530.  bit 3    operator at completion, with reply
  2531.  bit 4    user on queue switch
  2532.  bit 5    operator on queue switch, with reply
  2533.  bit 6    user on print error
  2534.  
  2535. Bitfields for job control mask:
  2536.  bit 0    print banner page
  2537.  bit 1    eject page at end of job
  2538.  bit 2    mark as "held" (queue but don't print)
  2539.  bit 3    rush job (queue at top)
  2540.  bit 4    overwrite file with zeros before deletion
  2541.  bit 5    hyperspool if possible
  2542. --------N-6F9502-----------------------------
  2543. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  2544.     AX = 9502h
  2545.     DS:SI -> server's node ID
  2546.     ES:DI -> shared device structure (see AX=9501h)
  2547. Return: CF clear if successful
  2548.     CF set on error
  2549.         AX = status (see AH=00h)
  2550. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  2551. --------N-6F9503-----------------------------
  2552. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  2553.     AX = 9503h
  2554.     BX = zero-based index
  2555.     DS:SI -> server's node ID
  2556. Return: CF clear if successful
  2557.     CF set on error
  2558.         AX = status (see AH=00h)
  2559. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  2560. --------N-6F9504-----------------------------
  2561. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  2562.     AX = 9504h
  2563.     BX = zero-based shared device index
  2564.     CX = zero-based user index
  2565.     DS:SI -> server's node ID
  2566. Return: CF clear if successful
  2567.         ES:DI -> node ID of the CX'th user of the BX'th device
  2568.     CF set on error
  2569.         AX = status (see AH=00h)
  2570. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  2571. --------N-6F99-------------------------------
  2572. INT 6F - 10NET v5.0 - AUDIT
  2573.     AH = 99h
  2574.     DS:SI -> server's node ID
  2575.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  2576. Return: CF clear if successful
  2577.     CF set on error
  2578.         AX = status (see AH=00h)
  2579. SeeAlso: AH=19h,AH=9Ch
  2580. --------N-6F9C-------------------------------
  2581. INT 6F - 10NET v5.0 - GET LOGIN LIST
  2582.     AH = 9Ch
  2583.     BX = zero-based index
  2584. Return: CF clear if successful
  2585.         DS:DI -> BX'th node ID that caller's machine is logged into
  2586.     CF set on error
  2587.         AX = status (see AH=00h)
  2588. --------H-70---------------------------------
  2589. INT 70 - IRQ8 - CMOS REAL-TIME CLOCK
  2590. Desc:    this interrupt is called when the real-time clock chip generates an
  2591.       alarm or periodic interrupt, among others.  The periodic interrupt
  2592.       occurs 1024 times per second.
  2593. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  2594.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  2595.     may be masked by setting bit 0 on I/O port A1h
  2596. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  2597. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  2598. --------v-70---------------------------------
  2599. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  2600. Note:    the virus sets this interrupt to be the same as INT 21, and then
  2601.       performs only INT 70 calls; since INT 70 is also generated by the
  2602.       real-time clock on the PC/AT and higher, this could cause random
  2603.       actions on an infected system
  2604. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  2605. --------H-71---------------------------------
  2606. INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  2607. Notes:    may be masked by setting bit 1 on I/O port A1h
  2608.     the default BIOS handler invokes INT 0A for compatibility, since the
  2609.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  2610.       AT expansion bus.
  2611.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2612.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2613.       process
  2614. SeeAlso: INT 0A,INT 59
  2615. --------H-72---------------------------------
  2616. INT 72 - IRQ10 - RESERVED
  2617. Note:    may be masked by setting bit 2 on I/O port A1h
  2618. SeeAlso: INT 5A
  2619. --------H-73---------------------------------
  2620. INT 73 - IRQ11 - RESERVED
  2621. Note:    may be masked by setting bit 3 on I/O port A1h
  2622. SeeAlso: INT 5B
  2623. --------H-74---------------------------------
  2624. INT 74 - IRQ12 - POINTING DEVICE (PS)
  2625. Notes:    may be masked by setting bit 4 on I/O port A1h
  2626.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2627.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2628.       process
  2629. SeeAlso: INT 33,INT 5C
  2630. --------H-75---------------------------------
  2631. INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  2632.    redirected to INT 02 by the BIOS, for compatibility with the PC
  2633. Notes:    may be masked by setting bit 5 on I/O port A1h
  2634.     not all clones wire the coprocessor to generate this IRQ; some systems
  2635.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  2636.       (see INT 10"COPROCESSOR")
  2637.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2638.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2639.       process
  2640. SeeAlso: INT 10"COPROCESSOR",INT 5D
  2641. --------H-76---------------------------------
  2642. INT 76 - IRQ14 - HARD DISK CONTROLLER (AT and later)
  2643. Note:    may be masked by setting bit 6 on I/O port A1h
  2644. SeeAlso: INT 0E"IRQ6",INT 5E
  2645. --------H-77---------------------------------
  2646. INT 77 - IRQ15 - RESERVED (AT,PS)
  2647. Note:    may be masked by setting bit 7 on I/O port A1h
  2648. SeeAlso: INT 5F
  2649. --------H-77---------------------------------
  2650. INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  2651. Note:    may be masked by setting bit 7 on I/O port A1h
  2652. SeeAlso: INT 15/AX=4600h,INT 5F
  2653. --------E-78---------------------------------
  2654. INT 78 - UofSalford DBOS DOS extender - API
  2655.     AH = function
  2656.         00h (PB) display 32-bit memory specified by command argument
  2657.         01h (PT) display 32-bit instruction(s) specified by command arg
  2658.         02h specify offset to subsequent PB and PT commands
  2659.         03h switch to protected mode
  2660.         DWORD following INT instruction point to map; protected-mode
  2661.             entry point is immediately following the DWORD
  2662.         Return: never
  2663.         Note:    if bit 31 of the map address is set, only a stub was
  2664.               loaded by DOS and DBOS will load the entire program
  2665.         04h specify that subsequent load (AH=03h) should leave program in
  2666.         memory
  2667.         05h release program from memory
  2668.         06h set break point at address and option count from commandline
  2669.         07h resume program execution
  2670.         08h single-step program
  2671.         09h set read/write breakpoint using 386 debug registers
  2672.         0Ah set write breakpoint using 386 debug register
  2673.         0Bh set memory byte to new value
  2674.         0Ch display CPU registers
  2675.         0Dh run until specified program address reached
  2676.         0Fh print trace from program map
  2677.         10h specify an offset using a map symbol
  2678.         14h print memory without any offset
  2679.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  2680.         1Dh get address of real/protected-mode communication buffer
  2681.         Return: ES:BP -> comm buffer
  2682.         1Eh set real-mode memory size (specify how much real-mode memory
  2683.           to leave free when running FTN77 programs)
  2684.         22h uninstall DBOS
  2685.         24h force DBOS to emulate coprocessor instructions
  2686.         26h set named DBOS switches from commandline
  2687.         27h reset named DBOS switched from commandline
  2688.         2Ah set list of dynamic link libraries to contents of commandline
  2689.         file
  2690.         35h specify that subsequent load (AH=03h) should stop at first
  2691.         instruction
  2692. Return: ???
  2693. Notes:    DBOS supports functions 00h through 50h; many of these functions
  2694.       provide a low-level debugging interface
  2695.     command arguments are read from the calling program's PSP
  2696. SeeAlso: INT 79"DBOS"
  2697. Index:    uninstall;DBOS DOS extender
  2698. --------E-78---------------------------------
  2699. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  2700. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2701.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2702. Note:    this vector is overwritten when GO32 starts but is not restored by
  2703.       early versions of the extender
  2704. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  2705. --------A-78---------------------------------
  2706. INT 78 - AutoCAD 10 ADI for Plotters
  2707.     AX = function
  2708.         0001h initialize comm port and reset plotter
  2709.         BX = ??? (comm port?)
  2710.         0002h close plotter
  2711.         0003h move (pen up)
  2712.         BX = new X position
  2713.         CX = new Y position
  2714.         0004h move (pen down)
  2715.         BX = new X position
  2716.         CX = new Y position
  2717.         0005h select pen
  2718.         BX = pen number
  2719.         0006h select drawing speed
  2720.         BX = drawing speed N
  2721.         0007h select line style
  2722.         BX = line style N
  2723.         0008h return pen to pen carrier??? (called before change-pen cmd)
  2724. Return: ???
  2725. SeeAlso: INT 7A"AutoCAD",INT 7B"AutoCAD"
  2726. --------d-78---------------------------------
  2727. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  2728. SeeAlso: INT 79"ADP-60"
  2729. --------d-7800-------------------------------
  2730. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  2731.     AH = 00h
  2732.     DX = interface board I/O port
  2733. Return: CF set on error
  2734.         AL = error code (see below)
  2735. Note:    if this routine is not called, the port is the driver's default
  2736.       (usually 0280h or 0300h)
  2737.     an installation check is performed by TARGA.DEV upon initialization
  2738.       by checking for the string "SCSI" at offset 03h into the interrupt
  2739.       handler
  2740. SeeAlso: AH=01h,AH=02h
  2741. Index:    installation check;TARGA.DEV
  2742.  
  2743. Values for error code:
  2744.  00h    illegal command given to SCSI code
  2745.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  2746.       an 8-port boundary)
  2747.  02h    invalid DMA channel specified (must be from 1 to 3)
  2748.  03h    invalid SCSI board number specified (must be from 0 to 7)
  2749.  04h    error from data register test during self-test
  2750.  05h    SCSI input signals not all 0 when SCSI RST activated
  2751.  06h    SCSI input signals not all 0 before selecting a SCSI device
  2752.  07h    BSY signal is active; SCSI bus is busy
  2753.  08h    SCSI board not selected, BSY signal did not come on in response to
  2754.       raising SEL
  2755.  09h    time-out waiting for status state, signifying end of DMA transfer
  2756. --------d-7801-------------------------------
  2757. INT 78 - TARGA.DEV - GET I/O PORT
  2758.     AH = 01h
  2759. Return: DX = current interface board I/O port
  2760. SeeAlso: AH=00h,AH=03h"TARGA"
  2761. --------d-7802-------------------------------
  2762. INT 78 - TARGA.DEV - SET DMA CHANNEL
  2763.     AH = 02h
  2764.     AL = interface board DMA channel
  2765. Return: CF set on error
  2766.     AL = error code (see AH=00h)
  2767. Note:    if this routine is not called, the DMA channel is the driver's default
  2768.       (usually 3)
  2769. SeeAlso: AH=00h,AH=03h"TARGA"
  2770. --------d-7803-------------------------------
  2771. INT 78 - TARGA.DEV - GET DMA CHANNEL
  2772.     AH = 03h
  2773. Return: AL = current interface board DMA channel
  2774. SeeAlso: AH=01h,AH=02h
  2775. --------d-7804-------------------------------
  2776. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  2777.     AH = 04h
  2778.     AL = SCSI device number
  2779. Return: CF set on error
  2780.     AL = error code (see AH=00h)
  2781. Note:    if this routine is not called, the device number used is the driver's
  2782.       default (usually 0)
  2783. SeeAlso: AH=02h,AH=05h
  2784. --------d-7805-------------------------------
  2785. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  2786.     AH = 05h
  2787. Return: AL = current SCSI device number
  2788. SeeAlso: AH=03h"TARGA",AH=04h
  2789. --------d-7806-------------------------------
  2790. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  2791.     AH = 06h
  2792.     AL = 00h clear early return mode
  2793.        = 01h set early return mode
  2794. Note:    if early return mode is set then SCSI will return with no errors
  2795.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  2796.     if this routine is not called, early return mode is cleared
  2797. SeeAlso: AH=13h,AH=14h,AH=15h
  2798. --------d-7808-------------------------------
  2799. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  2800.     AH = 08h
  2801. Return: CF set on error
  2802.     AL = error code (see AH=00h)
  2803. Note:    the SCSI bus is also reset
  2804. SeeAlso: AH=09h
  2805. --------d-7809-------------------------------
  2806. INT 78 - TARGA.DEV - RESET SCSI BUS
  2807.     AH = 09h
  2808. Return: AL = error code if carry set (see AH=00h)
  2809. SeeAlso: AH=08h
  2810. --------d-7810-------------------------------
  2811. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  2812.     AH = 10h
  2813.     DS:SI -> command bytes
  2814. Return: AH = SCSI status byte
  2815.     CF clear if successful
  2816.         AL = SCSI message byte
  2817.     CF set on error
  2818.         AL = error code (see AH=00h)
  2819. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  2820.  
  2821. Format of SCSI Command:
  2822. Offset    Size    Description
  2823.  00h    BYTE    length of command
  2824.  01h    ???    command bytes
  2825. --------d-7811-------------------------------
  2826. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  2827.     AH = 11h
  2828.     DS:SI -> command bytes
  2829.     ES:BX -> data storage area
  2830.     CX = number of data bytes to transfer
  2831. Return: AH = SCSI status byte
  2832.     CF clear if successful
  2833.         AL = SCSI message byte
  2834.     CF set on error
  2835.         AL = error code (see AH=00h)
  2836. Note:    this command receives data internally one byte at a time
  2837. SeeAlso: AH=10h,AH=13h
  2838.  
  2839. Format of SCSI Command:
  2840. Offset    Size    Description
  2841.  00h    BYTE    length of command
  2842.  01h    ???    command bytes
  2843. --------d-7812-------------------------------
  2844. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  2845.     AH = 12h
  2846.     DS:SI -> command bytes
  2847.     ES:BX -> data storage area
  2848.     CX = number of data bytes to transfer
  2849. Return: AH = SCSI status byte
  2850.     CF clear if successful
  2851.         AL = SCSI message byte
  2852.     CF set on error
  2853.         AL = error code (see AH=00h)
  2854. Note:    this command sends data internally one byte at a time
  2855. SeeAlso: AH=14h
  2856.  
  2857. Format of SCSI Command:
  2858. Offset    Size    Description
  2859.  00h    BYTE    length of command
  2860.  01h    ???    command bytes
  2861. --------d-7813-------------------------------
  2862. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  2863.     AH = 13h
  2864.     DS:SI -> command bytes
  2865.     ES:BX -> data storage area
  2866.     DX:CX = number of data bytes to transfer
  2867. Return: AH = SCSI status byte (if early return mode is clear)
  2868.     CF clear if successful
  2869.         AL = SCSI message byte (if early return mode is clear)
  2870.     CF set on error
  2871.         AL = error code (see AH=00h)
  2872. Note:    this command receives data using DMA
  2873. SeeAlso: AH=11h,AH=12h
  2874.  
  2875. Format of SCSI Command:
  2876. Offset    Size    Description
  2877.  00h    BYTE    length of command
  2878.  01h    ???    command bytes
  2879. --------d-7814-------------------------------
  2880. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  2881.     AH = 14h
  2882.     DS:SI -> command bytes
  2883.     ES:BX -> data storage area
  2884.     DX:CX = number of data bytes to transfer
  2885. Return: AH = SCSI status byte (if early return mode is clear)
  2886.     CF clear if successful
  2887.         AL = SCSI message byte (if early return mode is clear)
  2888.     CF set on error
  2889.         AL = error code (see AH=00h)
  2890. Note:    this command sends data using DMA
  2891. SeeAlso: AH=12h,AH=13h
  2892.  
  2893. Format of SCSI Command:
  2894. Offset    Size    Description
  2895.  00h    BYTE    length of command
  2896.  01h    ???    command bytes
  2897. --------d-7815-------------------------------
  2898. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  2899.     AH = 15h
  2900. Return: AH = SCSI status byte
  2901.     CF clear if successful
  2902.         AL = SCSI message byte
  2903.     CF set on error
  2904.         AL = error code (see AH=00h)
  2905. Note:    if AH=06h was previously called to set the early return mode, this
  2906.       function finishes a command AH=13h or AH=14h which returned before
  2907.       the last DMA transfer was finished
  2908. SeeAlso: AH=06h,AH=13h,AH=14h
  2909. --------V-79---------------------------------
  2910. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  2911. Return: CF set if no keystroke available
  2912.         AX = FFFFh
  2913.     CF clear if key pressed
  2914.         AX = keystroke
  2915. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  2916.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  2917. Note:    if a keystroke is available, it is removed from the keyboard buffer
  2918.       before being returned
  2919. SeeAlso: INT 29
  2920. --------E-79---------------------------------
  2921. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  2922. Note:    this vector is overwritten when GO32 starts but is not restored by
  2923.       early versions of the extender
  2924. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  2925. --------d-79---------------------------------
  2926. INT 79 U - ADP-60 IDE adapter - ???
  2927. SeeAlso: INT 78"ADP-60"
  2928. --------E-79---------------------------------
  2929. INT 79 - DBOS DOS Extender
  2930.     details not available
  2931. Desc:    this interrupt is used by an MS Windows virtual device driver with
  2932.       which the DBOS extender communicates when run inside a Windows
  2933.       Enhanced Mode DOS box
  2934. SeeAlso: INT 78"DBOS"
  2935. --------A-790001-----------------------------
  2936. INT 79 U - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  2937.     AX = 0001h
  2938. Return: AX = 0001h ??? self-test result???
  2939.     BX = 0001h
  2940. SeeAlso: AX=0002h,AX=0003h,INT 7A"AutoCAD"
  2941. --------A-790002-----------------------------
  2942. INT 79 U - AutoCAD Device Interface - DIGITIZER - CLOSE
  2943.     AX = 0002h
  2944. SeeAlso: AX=0001h,AX=0003h
  2945. --------A-790003-----------------------------
  2946. INT 79 U - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  2947.     AX = 0003h
  2948. Return: AX = button state
  2949.         0002h no button pressed
  2950.         BX = X coordinate
  2951.         CX = Y coordinate
  2952.         0003h Pick button (0,A,B,C,D) pressed
  2953.         BX = X coordinate
  2954.         CX = Y coordinate
  2955.         0005h other button (1-9) pressed
  2956.         BX = number of button - 1
  2957.         CX = X coordinate
  2958.         DX = Y coordinate
  2959. Note:    these return values are valid for the Houston Instruments HiPad Plus
  2960.       9236 digitizer with a 16-button cursor
  2961. SeeAlso: AX=0001h,AX=0002h
  2962. --------N-7A---------------------------------
  2963. INT 7A U - Topware Network Operating System - ???
  2964.     AL = ???
  2965.     ???
  2966. Return: ???
  2967. SeeAlso: INT 21/AH=FFh"Topware",INT 2F/AX=FF00h
  2968. --------A-7A---------------------------------
  2969. INT 7A - AutoCAD Device Interface
  2970.     ???
  2971. SeeAlso: AX=0001h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD",INT 79/AX=0001h
  2972. SeeAlso: INT 7B"AutoCAD"
  2973. --------N-7A---------------------------------
  2974. INT 7A - X.PC Packet software interface
  2975.     ES:BX -> parameter block
  2976. SeeAlso: INT 60/AX=01FFh
  2977. --------E-7A---------------------------------
  2978. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  2979. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2980.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2981. Note:    this vector is overwritten when GO32 starts but is not restored by
  2982.       early versions of the extender
  2983. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  2984. ----------7A---------------------------------
  2985. INT 7A O - PRINDIR - API (moved to INT 7C)
  2986. SeeAlso: INT 7C"PRINDIR"
  2987. --------N-7A---------------------------------
  2988. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  2989. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  2990.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2991.       entry point even though INT 7A still exists.    For both INT 7A and
  2992.       the FAR entry point, BX contains the function number; IPX is
  2993.       sometimes called internally with BX bit 15 set.
  2994. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  2995. --------N-7A----BX0000-----------------------
  2996. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  2997.     BX = 0000h
  2998.     AL = socket longevity
  2999.         00h open until close or terminate
  3000.         FFh open until close
  3001.     DX = socket number (high byte in DL)
  3002.         0000h dynamic allocation
  3003.         else  socket to open (see below)
  3004. Return: AL = return code
  3005.         00h success
  3006.         DX = socket number
  3007.         FEh socket table full
  3008.         FFh socket already open
  3009. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  3010.       programs should normally use AL=00h
  3011.     IPX can be configured to support up to 150 open sockets on a
  3012.       workstation, and defaults to 20
  3013.     this function is supported by Advanced NetWare 1.02+
  3014. SeeAlso: BX=0001h,BX=0004h
  3015.  
  3016. Values for socket number:
  3017.  0451h    File Service (Netware Core Protocol)
  3018.  0452h    Service Advertising Protocol
  3019.  0453h    Routing Information Packet
  3020.  0455h    NetBIOS Packet
  3021.  0456h    diagnostics
  3022.  0457h    ??? (appears to be related to server serial numbers)
  3023.  4000h-7FFFh used for dynamic allocation
  3024.  4444h    Brightwork Development's SiteLock server
  3025.  5555h    Brightwork Development's SiteLock client (workstation)
  3026.  8000h-FFFFh assigned by Novell
  3027. Note:    SiteLock is an application metering product using IPX to communicate
  3028.       between the application and the license server
  3029. --------N-7A----BX0001-----------------------
  3030. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  3031.     BX = 0001h
  3032.     DX = socket number (high byte in DL)
  3033. Notes:    also cancels events set by any Event Control Blocks for the socket
  3034.     the program must close all open sockets before terminating
  3035.     this function is supported by Advanced NetWare 1.02+
  3036. SeeAlso: BX=0000h
  3037. --------N-7A----BX0002-----------------------
  3038. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  3039.     BX = 0002h
  3040.     ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  3041.     ES:DI -> 6-byte buffer for local target
  3042. Return: AL = return code
  3043.         00h success
  3044.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  3045.             packet
  3046.            ES:DI -> local target
  3047.         FAh unsuccessful (no path to destination)
  3048. Notes:    the internetwork address consists of a 4-byte network address followed
  3049.       by a 6-byte node address.  The local target is only a 6-byte node
  3050.       address.  If the target is in the same network, the local target is
  3051.       just the node address of target; otherwise, the local target is the
  3052.       node address of the bridge that leads to the target.
  3053.     this function may be called from inside IPX and AES Event Service
  3054.       Routines, but not from other interrupt handlers
  3055.     this function is supported by Advanced NetWare 1.02+
  3056. SeeAlso: BX=0009h
  3057. --------N-7A----BX0003-----------------------
  3058. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  3059.     BX = 0003h
  3060.     ES:SI -> Event Control Block (see below)
  3061. Notes:    returns immediately; IPX attempts to send the packet in the background
  3062.     this function is supported by Advanced NetWare 1.02+
  3063.     this function is nearly identical to BX=000Fh, except that it always
  3064.       copies the source address into the IPX header assumed to be at the
  3065.       beginning of the first fragment
  3066. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  3067.  
  3068. Format of Event Control Block:
  3069. Offset    Size    Description
  3070.  00h    DWORD    Link
  3071.  04h    DWORD    -> Event Service Routine (00000000h if none)
  3072.  08h    BYTE    in use flag (see below)
  3073.  09h    BYTE    completion code (see below)
  3074.  0Ah    WORD    (big-endian) socket number (see INT 7A/BX=0000h)
  3075.  0Ch  4 BYTES    IPX workspace
  3076.  10h 12 BYTES    driver workspace
  3077.  1Ch  6 BYTES    immediate local node address
  3078.  22h    WORD    fragment count
  3079.  24h    var    fragment descriptors
  3080.         Offset    Size    Description
  3081.          00h    DWORD    -> fragment data
  3082.          04h    WORD    size of fragment in bytes.
  3083. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  3084.       On call, the in use flag is zero if the ECB has been handled,
  3085.       non-zero otherwise. If the flag is zero, the completion code holds
  3086.       the result of the event.
  3087.     the first fragment should start with an IPX header
  3088.     all fragments are concatenated and sent in one piece
  3089.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  3090.  
  3091. Format of AES-ECB:
  3092. Offset    Size    Description
  3093.  00h    DWORD    Link
  3094.  04h    DWORD    ESR address
  3095.  08h    BYTE    in use flag (see below)
  3096.  09h  5 BYTEs    AES workspace
  3097.  
  3098. Values for ECB in use flag:
  3099.  00h    available
  3100.  E0h    AES temporary
  3101.  F6h    \ special IPX/SPX processing for v3.02+
  3102.  F7h    /
  3103.  F8h    IPX in critical section
  3104.  F9h    SPX listening
  3105.  FAh    processing
  3106.  FBh    holding
  3107.  FCh    AES waiting
  3108.  FDh    AES couting down delay time
  3109.  FEh    awaiting packet reception
  3110.  FFh    sending packet
  3111.  
  3112. Values for ECB completion code:
  3113.  00h    success
  3114.  ECh    remote terminated connection without acknowledging packet
  3115.  EDh    abnormal connection termination
  3116.  EEh    invalid connection ID
  3117.  EFh    SPX connection table full
  3118.  F9h    event should not be cancelled
  3119.  FAh    cannot establish connection with specified destination
  3120.  FCh    cancelled
  3121.  FDh    malformed packet
  3122.  FEh    packet undeliverable
  3123.  FFh    physical error
  3124.  
  3125. Event Service Routine called with:
  3126.     AL = caller's identity (00h = AES, FFh = IPX)
  3127.     ES:SI -> event control block
  3128.     interrupts disabled
  3129.  
  3130. Format of IPX header:
  3131. Offset    Size    Description
  3132.  00h    WORD    (big-endian) checksum
  3133.  02h    WORD    (big-endian) length in bytes of total packet
  3134.  04h    BYTE    transport control
  3135.  05h    BYTE    packet type (see below)
  3136.  06h 10 BYTES    destination internetwork address
  3137.  10h    WORD    (big-endian) destination socket
  3138.  12h 10 BYTES    source internetwork address
  3139.  1Ch    WORD    (big-endian) source socket
  3140.  
  3141. Values for IPX packet type:
  3142.  00h    unknown packet type
  3143.  01h    routing information packet
  3144.  02h    echo packet
  3145.  03h    error packet
  3146.  04h    packet exchange packet (always use this one)
  3147.  05h    SPX packet
  3148.  11h    NetWare Core Protocol
  3149.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  3150.  15h-1Eh experimental protocols
  3151.  
  3152. Format of Service Advertising Protocol Service Query Packet:
  3153. Offset    Size    Description
  3154.  00h 30 BYTEs    IPX header
  3155.  1Eh    WORD    (big-endian) query type
  3156.         0001h general find service
  3157.         0003h find nearest server
  3158.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3159.  
  3160. Format of Service Advertising Protocol Server Identification Packet:
  3161. Offset    Size    Description
  3162.  00h 30 BYTEs    IPX header
  3163.  1Eh    WORD    (big-endian) response type
  3164.         0002h general service
  3165.         0004h nearest service
  3166.  20h 64N BYTEs    server entries (1-7) (see below)
  3167.  
  3168. Format of SAP server entry:
  3169. Offset    Size    Description
  3170.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3171.  02h 48 BYTEs    ASCIZ server name
  3172.  32h  2 WORDs    (big-endian) network number
  3173.  34h  3 WORDs    (big-endian) node number
  3174.  3Ch    WORD    (big-endian) socket number
  3175.  3Eh    WORD    (big-endian) number of hops between caller and server
  3176.  
  3177. Format of Routing Information packet:
  3178. Offset    Size    Description
  3179.  00h 30 BYTEs    IPX header
  3180.  1Eh    WORD    operation (0001h request, 0002h response)
  3181.  20h 8N BYTEs    network entries (1-50) (see below)
  3182.  
  3183. Format of RIP network entry:
  3184. Offset    Size    Description
  3185.  00h    DWORD    network number (FFFFFFFFh = general request)
  3186.  04h    WORD    (response) number of hops
  3187.  06h    WORD    (response) number of clock ticks to reach destination
  3188. --------N-7A----BX0004-----------------------
  3189. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  3190.     BX = 0004h
  3191.     ES:SI -> Event Control Block (see BX=0003h)
  3192. Return: AL = status
  3193.         00h successful
  3194.         FFh no listening socket for packet
  3195. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  3196.       does not wait for a packet to arrive
  3197. Notes:    the application must open a socket and initialize the ECB's ESR
  3198.       address, socket number, fragment count, and fragment descriptor
  3199.       fields before invoking this function
  3200.     there is no limit on the number of ECBs which may simultaneously be
  3201.       listening on a socket
  3202.     this function is supported by Advanced NetWare 1.02+
  3203. SeeAlso: BX=0000h,BX=0003h
  3204. --------N-7A----BX0005-----------------------
  3205. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  3206.     BX = 0005h
  3207.     AX = delay time in clock ticks
  3208.     ES:SI -> Event Control Block (see BX=0003h)
  3209. Note:    this function is supported by Advanced NetWare 1.02+
  3210. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  3211. --------N-7A----BX0006-----------------------
  3212. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  3213.     BX = 0006h
  3214.     ES:SI -> Event Control Block (see BX=0003h)
  3215. Return: AL = return code
  3216.         00h success
  3217.         F9h event in use
  3218.         FCh event cancelled
  3219.         FFh unsuccessful, event not in use, or unrecognized ECB flag
  3220. Notes:    cannot cancel packets which the node's driver has already sent
  3221.     this function is supported by Advanced NetWare 1.02+
  3222. SeeAlso: BX=0005h
  3223. --------N-7A----BX0007-----------------------
  3224. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  3225.     BX = 0007h
  3226.     AX = delay time
  3227.     ES:SI -> Event Control Block (see BX=0003h)
  3228. Note:    this function is supported by Advanced NetWare 1.02+
  3229. SeeAlso: BX=0006h
  3230. --------N-7A----BX0008-----------------------
  3231. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  3232.     BX = 0008h
  3233. Return: AX = interval marker in clock ticks
  3234. Notes:    may be used to measure the time elapsed between two events, up to one
  3235.       hour
  3236.     this function is supported by Advanced NetWare 1.02+
  3237. SeeAlso: BX=0005h
  3238. --------N-7A----BX0009-----------------------
  3239. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  3240.     BX = 0009h
  3241.     ES:SI -> buffer for own internetwork address (see below)
  3242. Return: ES:SI buffer filled
  3243.     SI destroyed
  3244. Note:    this function is supported by Advanced NetWare 1.02+
  3245. SeeAlso: BX=0002h,BX=000Bh
  3246.  
  3247. Format of internetwork address:
  3248. Offset    Size    Description
  3249.  00h  4 BYTEs    (big-endian) network number
  3250.  04h  6 BYTEs    (big-endian) node number within network
  3251. --------N-7A----BX000A-----------------------
  3252. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  3253.     BX = 000Ah
  3254. Desc:    this call indicates that the application is idle and permits the IPX
  3255.       driver to do some work
  3256. Note:    this function is supported by Advanced NetWare 1.02+
  3257. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  3258. --------N-7A----BX000B-----------------------
  3259. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  3260.     BX = 000Bh
  3261.     ES:SI -> internetwork address (see below)
  3262. Notes:    this function permits the network software on the remote machine to
  3263.       remove any virtual connection with the calling machine
  3264.     only use in point-to-point networks
  3265.     should never be called from within an Event Service Routine
  3266.     this function is supported by Advanced NetWare 1.02+
  3267. SeeAlso: BX=0002h,BX=0009h
  3268.  
  3269. Format of internetwork address:
  3270. Offset    Size    Description
  3271.  00h  4 BYTEs    (big-endian) destination network
  3272.  04h  6 BYTEs    (big-endian) destination node
  3273.  0Ah  2 BYTEs    (big-endian) destination socket
  3274. --------N-7A----BX000C-----------------------
  3275. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  3276.     BX = 000Ch
  3277.     CX:DX = global network address (see INT 7A/BX=0002h)
  3278.     ES:DI -> "OSINCRITICALSECTION" flag
  3279.     DS:SI -> current mode for socket
  3280. Note:    the address cannot be changed once it has been initialized
  3281. --------N-7A----BX000D-----------------------
  3282. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  3283.     BX = 000Dh
  3284. Return: AX = maximum packet size
  3285.     CX = retry count
  3286. SeeAlso: BX=001Ah
  3287. --------N-7A----BX000E-----------------------
  3288. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  3289.     BX = 000Eh
  3290. Return: nothing
  3291. Note:    this function terminates all sockets opened with the current mode; this
  3292.       may be intended for future enhancements as the socket mode never
  3293.       changes in v2.15
  3294. --------N-7A----BX000F-----------------------
  3295. INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  3296.     BX = 000Fh
  3297.     ES:SI -> Event Control Block (see BX=0003h)
  3298. Note:    nearly identical to function 0003h, but does not copy address into
  3299.       the first fragment
  3300. SeeAlso: BX=0003h
  3301. --------N-7A----BX0010-----------------------
  3302. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  3303.     BX = 0010h
  3304.     AL = 00h
  3305. Return: AL = FFh if SPX loaded
  3306.         BH = SPX major version
  3307.         BL = SPX minor version
  3308.         CX = maximum SPX connections
  3309.         DX = SPX connections available
  3310. Note:    this function is supported by Advanced NetWare 2.1+
  3311. SeeAlso: BX=0015h
  3312. --------N-7A----BX0011-----------------------
  3313. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  3314.     BX = 0011h
  3315.     AL = retry count
  3316.     AH = watchdog flag
  3317.     ES:SI -> Event Control Block (see BX=0003h)
  3318. Return: AL = status
  3319.         00h attempting to contact destination socket
  3320.         EFh local connection table full
  3321.         FDh buffer size not 42 or fragment count not 1
  3322.         FFh sending socket not open
  3323.     DX = assigned connection ID number
  3324. Desc:    attempt to establish a connection with a listening socket
  3325. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3326.       that NetWare can perform its internal packet exchanges
  3327.     the first fragment should start with a SPX header.  Fill in all
  3328.       destination addresses.
  3329.     this function is supported by Advanced NetWare 2.1+
  3330. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  3331.  
  3332. Format of SPX header:
  3333. Offset    Size    Description
  3334.  00h    WORD    (big-endian) checksum
  3335.  02h    WORD    (big-endian) length in bytes of total packet
  3336.  04h    BYTE    transport control
  3337.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  3338.  06h 10 BYTEs    destination internet address
  3339.  10h    WORD    (big-endian) destination socket
  3340.  12h 10 BYTEs    source internet address
  3341.  1Ch    WORD    (big-endian) source socket
  3342.  1Eh    BYTE    connection control (see below)
  3343.  1Fh    BYTE    datastream type
  3344.         FEh terminate connection request packet
  3345.         FFh terminate connection acknowledgement packet
  3346.         other user-defined, ignored by SPX
  3347.  20h    WORD    (big-endian) source connection ID
  3348.  22h    WORD    (big-endian) destination connection ID
  3349.  24h    WORD    (big-endian) sequence number
  3350.  26h    WORD    (big-endian) acknowledge number
  3351.  28h    WORD    (big-endian) allocation number
  3352.  
  3353. Bitfield for connection control:
  3354.  bits 3-0 unused???
  3355.  bit 4    end of message
  3356.  bit 5    reserved
  3357.  bit 6    acknowledgement required
  3358.  bit 7    system packet
  3359. --------N-7A----BX0012-----------------------
  3360. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  3361.     BX = 0012h
  3362.     AH = watchdog flag
  3363.         00h disabled
  3364.         01h enabled
  3365.     AL = retry count (00h = default)
  3366.     ES:SI -> Event Control Block (see BX=0003h)
  3367. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3368.       that NetWare can perform its internal packet exchanges
  3369.     this function is supported by Advanced NetWare 2.1+
  3370. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  3371. --------N-7A----BX0013-----------------------
  3372. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  3373.     BX = 0013h
  3374.     DX = connection ID to terminate
  3375.     ES:SI -> Event Control Block (see BX=0003h)
  3376. Note:    this function is supported by Advanced NetWare 2.1+
  3377. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  3378. --------N-7A----BX0014-----------------------
  3379. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  3380.     BX = 0014h
  3381.     DX = connection ID to terminate
  3382. Notes:    this function is supported by Advanced NetWare 2.1+
  3383.     this function does not tell the other side that the connection has been
  3384.       terminated
  3385.     also aborts any outstanding Establish Connection, Terminate Connection,
  3386.       and Send Sequenced Packet commands
  3387. SeeAlso: BX=0011h,BX=0013h
  3388. --------N-7A----BX0015-----------------------
  3389. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  3390.     BX = 0015h
  3391.     DX = connection ID
  3392.     ES:SI -> status buffer (see below)
  3393. Return: AL = return code
  3394.         00h connection still valid
  3395.         ES:SI -> status buffer filled
  3396.         EEh no such connection
  3397. Note:    this function is supported by Advanced NetWare 2.1+
  3398. SeeAlso: BX=0010h,BX=0011h
  3399.  
  3400. Format of status buffer:
  3401. Offset    Size    Description
  3402.  00h    BYTE    connection state
  3403.         01h waiting to establish connection
  3404.         02h starting (attempting to create connection)
  3405.         03h connection established
  3406.         04h terminating
  3407.  01h    BYTE    watchdog flag
  3408.         bit 0: used internally by SPX
  3409.         bit 1: SPX watchdog is monitoring connection
  3410.         bits 2-7 used internally by SPX
  3411.  02h    WORD    (big-endian) source connection ID
  3412.  04h    WORD    (big-endian) destination connection ID
  3413.  06h    WORD    (big-endian) sequence number of next packet sent
  3414.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  3415.           next received packet
  3416.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  3417.           without ACK from local SPX
  3418.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  3419.           remote SPX expects to receive
  3420.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  3421.           local SPX may send
  3422.  10h    WORD    (big-endian) connection socket
  3423.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  3424.  18h 10 BYTEs    destination internetwork address (see INT 7A/BX=000Bh)
  3425.  22h    WORD    (big-endian) retransmit count
  3426.  24h    WORD    (big-endian) estimated roundtrip delay
  3427.  26h    WORD    (big-endian) retransmitted packets
  3428.  28h    WORD    (big-endian) suppressed packets
  3429.  2Ah 12 BYTEs    ??? (v2.15)
  3430. --------N-7A----BX0016-----------------------
  3431. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  3432.     BX = 0016h
  3433.     DX = connection ID
  3434.     ES:SI -> Event Control Block (see BX=0003h)
  3435. Notes:    this function is supported by Advanced NetWare 2.1+
  3436.     CX may need to be 0001h ???
  3437. SeeAlso: BX=0011h,BX=0017h
  3438. --------N-7A----BX0017-----------------------
  3439. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  3440.     BX = 0017h
  3441.     DX = connection ID (unused in v2.15)
  3442.     ES:SI -> Event Control Block (see BX=0003h)
  3443. Notes:    this function is supported by Advanced NetWare 2.1+
  3444.     CX may need to be 0001h ???
  3445. SeeAlso: BX=0011h,BX=0016h
  3446. --------N-7A----BX0018-----------------------
  3447. INT 7A U - Novell NetWare - SPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  3448.     BX = 0018h
  3449.     ES:SI -> diagnostic element (see below) to be added to Diagnostic Queue
  3450. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3451.       supports it on workstations
  3452. SeeAlso: BX=0019h
  3453.  
  3454. Format of diagnostic element:
  3455. Offset    Size    Description
  3456.  00h    DWORD    pointer to next diagnostic element
  3457.  04h    DWORD    pointer to function for ???
  3458.  08h    DWORD    pointer to function for ???
  3459. --------N-7A----BX0019-----------------------
  3460. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  3461.     BX = 0019h
  3462.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  3463. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3464.       supports it on workstations
  3465. SeeAlso: BX=0018h
  3466. --------N-7A----BX001A-----------------------
  3467. INT 7A U - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  3468.     BX = 001Ah
  3469. Return: AX = packet size with preamble
  3470.     CX = IPX retry count
  3471. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3472.       supports it on workstations
  3473. SeeAlso: BX=000Dh
  3474. --------N-7A----BX001B-----------------------
  3475. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  3476.     BX = 001Bh
  3477.     ???
  3478. Return: ???
  3479. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3480.       supports it on workstations
  3481. ----------7A0001-----------------------------
  3482. INT 7A - AutoCAD Device Interface - VIDEO DRIVER - GET ENTRY POINT
  3483.     AX = 0001h
  3484. Return: AX = ??? (0003h for Compaq VGADI41.EXE)
  3485.     BX = 0000h
  3486.     DX:CX -> ADI entry point (see below)
  3487. SeeAlso: AX=07D0h
  3488.  
  3489. Call ADI entry point with:
  3490.     STACK:    DWORD    -> request record (see below)
  3491.  
  3492. Format of request record:
  3493. Offset    Size    Description
  3494.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  3495. --------I-7A04-------------------------------
  3496. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  3497.     AH = 04h
  3498.     ???
  3499. Return: ???
  3500. SeeAlso: AH=06h
  3501. --------I-7A06-------------------------------
  3502. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  3503.     AH = 06h
  3504.     ???
  3505. Return: ???
  3506. SeeAlso: AH=04h
  3507. ----------7A07D0-----------------------------
  3508. INT 7A - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  3509.     AX = 07D0h
  3510. Return: Return: AX = ??? (0003h)
  3511.     BX = 0000h
  3512.     DX:CX -> ADI entry point (see AX=0001h)
  3513. SeeAlso: AX=0001h
  3514. --------I-7A09--BX8020-----------------------
  3515. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  3516.     AH = 09h
  3517.     BX = 8020h (synchronous request)
  3518.     CX = 0000h
  3519.     DX = ID of session manager (SESSMGR)
  3520.     AL = service
  3521.         01h get session ID
  3522.         02h get session info
  3523.         04h dettach from session
  3524.         05h attach to session
  3525.         06h get list of windows available
  3526.         07h get environment of window
  3527.         08h get 'PIF' (program information file) info
  3528.         0Ah get base window ID
  3529.         0Bh get cursor info
  3530.     ES:DI -> control block
  3531. Return: ???
  3532. --------I-7A09--BX8020-----------------------
  3533. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  3534.     AH = 09h
  3535.     BX = 8020h (synchronous request)
  3536.     CX = 0000h
  3537.     DX = ID of keyboard manager
  3538.     AL = service
  3539.         01h connect to keyboard
  3540.         02h disconnect from keyboard
  3541.         03h read from keyboard
  3542.         04h send keystroke to session
  3543.         05h disable input
  3544.         06h enable input
  3545.         07h update status code
  3546.     ES:DI -> control block
  3547. Return: ???
  3548. --------I-7A09--BX8020-----------------------
  3549. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  3550.     AH = 09h
  3551.     BX = 8020h (synchronous request)
  3552.     CX = 00FFh
  3553.     DX = ID of window service controller (WSCTRL)
  3554.     AL = service
  3555.         01h connect to WS control
  3556.         02h disconnect from WS control
  3557.         03h add a window
  3558.         04h change window's position on screen
  3559.         05h change window's size
  3560.         06h change window's color
  3561.         07h change window's position in the presentation space
  3562.         08h hide/unhide toggle
  3563.         09h enlarge/reduce toggle
  3564.         0Ah change screen background color
  3565.         0Bh get window's position on screen
  3566.         0Ch get window's size
  3567.         0Dh get window's color
  3568.         0Eh get window's position in the presentation space
  3569.         0Fh determine whether hidden
  3570.         10h determine whether enlarged
  3571.         11h get background color
  3572.         12h get window names
  3573.         13h delete all windows from profile
  3574.         14h pick active window
  3575.         15h redraw screen
  3576.         16h redraw window
  3577.         17h delete a window from profile
  3578.         18h get active window
  3579.         19h get active screen
  3580.         1Ah get window data
  3581.         1Bh change window data
  3582.         1Ch select active screen
  3583.     ES:DI -> control block
  3584. Return: ???
  3585. --------I-7A09--BX8020-----------------------
  3586. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  3587.     AH = 09h
  3588.     BX = 8020h
  3589.     CX = 00FFh
  3590.     DX = ID of PCPSM
  3591.     AL = service
  3592.         01h define presentation space
  3593.         02h delete presentation space
  3594.         03h display presentation space
  3595.         04h position cursor in presentation space
  3596.         05h change default presentation space
  3597.     ES:DI -> control block
  3598. Return: ???
  3599. --------I-7A09--BX8020-----------------------
  3600. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  3601.     AH = 09h
  3602.     BX = 8020h
  3603.     CX = 00FFh
  3604.     DX = ID of 3270EML
  3605.     AL = service
  3606.         01h connect
  3607.         02h disconnect
  3608.     ES:DI -> control block
  3609. Return: ???
  3610. --------I-7A09--BX8020-----------------------
  3611. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  3612.     AH = 09h
  3613.     BX = 8020h
  3614.     CX = 00FFh
  3615.     DX = ID of OIAM
  3616.     AL = service
  3617.         01h read Operator Information Area
  3618.         02h read OIA subset
  3619.     ES:DI -> control block
  3620. Return: ???
  3621. Note: the OIA is the 25th line on the Host session
  3622. --------I-7A09--BX8020-----------------------
  3623. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  3624.     AH = 09h
  3625.     BX = 8020h
  3626.     CX = 00FFh
  3627.     DX = ID of XLATE
  3628.     AL = service
  3629.         01h translate from host characters to ASCII and vice versa
  3630.         (determined by control block byte 11)
  3631.     ES:DI -> control block
  3632. Return: ???
  3633. --------I-7A09--BX8020-----------------------
  3634. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  3635.     AH = 09h
  3636.     BX = 8020h
  3637.     CX = 00FFh
  3638.     DX = ID of copy service
  3639.     AL = service
  3640.         01h copy string from one presentation space to another
  3641.         02h copy block from one presentation space to another
  3642.         03h connect to PC session for copy
  3643.         04h disconnect PC session from copy
  3644.     ES:DI -> control block
  3645. Return: ???
  3646. --------I-7A09--BX8020-----------------------
  3647. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  3648.     AH = 09h
  3649.     BX = 8020h
  3650.     CX = 00FFh
  3651.     ES:DI -> control block
  3652.     DX = ID of INDJQRY
  3653.         get environment size
  3654.        = ID of INDJASY
  3655.         request DOS functions from workstation
  3656.        = ID of MEMORY
  3657.         AL = function
  3658.             01h allocate memory
  3659.             02h deallocate memory
  3660.             03h modify allocated size
  3661. Return: ???
  3662. --------I-7A09-------------------------------
  3663. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  3664.     AH = 09h
  3665.     BX = request type (4000h async, 8028h synchronous)
  3666.     CX = 0000h
  3667.     DX = ID of MFIC
  3668.     AL = service
  3669.        01h connect to host
  3670.        02h disconnect from host
  3671.        03h read DFT structured data from host
  3672.        04h write DFT structured data to host
  3673.        05h create a host buffer
  3674.     ES:DI -> control block
  3675. --------I-7A13-------------------------------
  3676. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  3677.     AH = 13h
  3678.     ???
  3679. Return: ???
  3680. ----------7A7A-------------------------------
  3681. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  3682.     AH = 7Ah
  3683.     ???
  3684. Return: AX = 0000h success
  3685.          000Eh undefined function code
  3686. Note:    this interface is normally on INT 7A but can be changed via device
  3687.       driver command line arguments
  3688. --------I-7A81-------------------------------
  3689. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  3690.     AH = 81h
  3691.     ES:DI -> 8-char blank-padded gate name
  3692.         "SESSMGR ", "KEYBOARD", "WSCTRL     ", "MFIC    ", "PCPSM     ",
  3693.         "3270EML ", "COPY    ", "XLATE     ", "OIAM    ", "MEMORY     ",
  3694.         "INDJQRY ", or "INDJASY "
  3695. Return: DX = gate ID
  3696. --------I-7A83-------------------------------
  3697. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  3698.     AH = 83h
  3699.     ???
  3700. Return: ???
  3701. --------I-7AFDCB-----------------------------
  3702. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  3703.     AX = FDCBh
  3704. Return: DX:AX -> PCS/3270 signature block if loaded (see below)
  3705.  
  3706. Format of signature block:
  3707. Offset    Size    Description
  3708.  04h    WORD    PCS/3270 signature (5741h)
  3709.  06h    WORD    version (0501h = PCS/3270 v1.0)
  3710. --------I-7AFE01-----------------------------
  3711. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3712.     AX = FE01h
  3713.     ???
  3714. Return: ???
  3715. SeeAlso: AX=FE02h
  3716. --------I-7AFE02-----------------------------
  3717. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  3718.     AX = FE02h
  3719.     ???
  3720. Return: ???
  3721. SeeAlso: AX=FE01h
  3722. --------I-7AFF01-----------------------------
  3723. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3724.     AX = FF01h
  3725.     ES:DI -> API function handler routine
  3726. Return: CX = 1200h
  3727. SeeAlso: AX=FF02h,AX=FF03h
  3728. --------I-7AFF02-----------------------------
  3729. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  3730.     AX = FF02h
  3731. Return: CX = 1200h
  3732. SeeAlso: AX=FF01h
  3733. --------I-7AFF03-----------------------------
  3734. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  3735.     AX = FF03h
  3736.     ES:DI -> send/receive function handler routine
  3737. Return: CX = 1200h
  3738. SeeAlso: AX=FF01h
  3739. --------I-7AFF04-----------------------------
  3740. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  3741.     AX = FF04h
  3742.     ES:DI -> ???
  3743. Return: CX = 1200h
  3744. --------f-7B---------------------------------
  3745. INT 7B - Btrieve API (single user)
  3746.     DS:DX -> 38-byte parameter record (see below)
  3747. Return: return code field set
  3748. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  3749.       check
  3750. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  3751.  
  3752. Format of Btrieve parameter record:
  3753. Offset    Size    Description
  3754.  00h    DWORD    pointer to data buffer
  3755.  04h    WORD    data buffer length
  3756.  06h    DWORD    pointer to 90-byte record containing positioning info
  3757.         (should be same for all calls for same file)
  3758.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  3759.         (should be same for all calls for same file)
  3760.  0Eh    WORD    function code (see below)
  3761.  10h    DWORD    pointer to file name/key buffer
  3762.  14h    BYTE    key length
  3763.  15h    BYTE    key number
  3764.  16h    DWORD    pointer to status code (see below)
  3765.  1Ah    WORD    interface code (version specific)
  3766.         6176h version 5.10
  3767.  
  3768. Values for function code:
  3769.  00h    open
  3770.  01h    close
  3771.  02h    insert
  3772.  03h    update
  3773.  04h    delete
  3774.  05h    get_equal
  3775.  06h    get_next
  3776.  07h    get_prev
  3777.  08h    get_greater
  3778.  09h    get_gr_eql
  3779.  0Ah    get_less
  3780.  0Bh    get_less_eq
  3781.  0Ch    get_first
  3782.  0Dh    get_last
  3783.  0Eh    create
  3784.  0Fh    stat
  3785.  10h    extend
  3786.  11h    set_dir: set directory information
  3787.  12h    get_dir: get directory information
  3788.  13h    begin_trans
  3789.  14h    end_trans
  3790.  15h    abort_trans
  3791.  16h    get_pos: get record position number
  3792.  17h    get_direct: get data by sending record position
  3793.  18h    step_next
  3794.  19h    stop
  3795.  1Ah    version
  3796.  1Bh    unlock
  3797.  1Ch    reset
  3798.  1Dh    set owner
  3799.  1Eh    clear owner
  3800.  1Fh    create supplemental index
  3801.  20h    drop supplemental index
  3802.  21h    step first
  3803.  22h    step last
  3804.  23h    step previous
  3805.  24h    get next extended: get multiple records using a filter
  3806.  25h    get previous extended: get multiple records using a filter
  3807.  26h    step next extended: get multiple records using a filter
  3808.  27h    step previous extended: get multiple records using a filter
  3809.  28h    insert extended: insert one or more records
  3810.  31h    ???
  3811.  add 50 (32h) to any "get" operation to just return the key data
  3812.  add 100 (64h) for a single-record wait lock (automatically released on next
  3813.         get)
  3814.  add 200 (C8h) for a single-record nowait lock (nowait lock returns error 54h
  3815.         or 55h if record already locked)
  3816.  add 300 (12Ch) for a multiple-record wait lock (not released until unlock
  3817.         called)
  3818.  add 400 (190h) for a multiple-record nowait lock (nowait lock returns error
  3819.         54h or 55h if record already locked)
  3820.  
  3821. Values for status code:
  3822.  00h    successful
  3823.  01h    invalid operation
  3824.  02h    I/O error
  3825.  03h    file not open
  3826.  04h    key value not found
  3827.  05h    duplicate key value
  3828.  06h    invalid key number
  3829.  07h    different key number
  3830.  08h    invalid positioning
  3831.  09h    end of file
  3832.  0Ah    modifiable key value error
  3833.  0Bh    invalid file name
  3834.  0Ch    file not found
  3835.  0Dh    extended file error
  3836.  0Eh    pre-image open error
  3837.  0Fh    pre-image I/O error
  3838.  10h    expansion error
  3839.  11h    close error
  3840.  12h    disk full
  3841.  13h    unrecoverable error
  3842.  14h    record manager inactive
  3843.  15h    key buffer too short
  3844.  16h    data buffer length overrun
  3845.  17h    position block length
  3846.  18h    page size error
  3847.  19h    create I/O error
  3848.  1Ah    number of keys
  3849.  1Bh    invalid key position
  3850.  1Ch    invalid record length
  3851.  1Dh    invalid key length
  3852.  1Eh    not a Btrieve file
  3853.  1Fh    file already extended
  3854.  20h    extended I/O error
  3855.  22h    invalid extension name
  3856.  23h    directory error
  3857.  24h    transaction error
  3858.  25h    transaction is active
  3859.  26h    transaction control file I/O error
  3860.  27h    end/abort transaction error
  3861.  28h    transaction max files
  3862.  29h    operation not allowed
  3863.  2Ah    incomplete accelerated access
  3864.  2Bh    invalid record address
  3865.  2Ch    null key path
  3866.  2Dh    inconsistent key flags
  3867.  2Eh    access to file denied
  3868.  2Fh    maximum open files
  3869.  30h    invalid alternate sequence definition
  3870.  31h    key type error
  3871.  32h    owner already set
  3872.  33h    invalid owner
  3873.  34h    error writing cache
  3874.  35h    invalid interface
  3875.  36h    variable page error
  3876.  37h    autoincrement error
  3877.  38h    incomplete index
  3878.  39h    expanded memory error
  3879.  3Ah    compression buffer too short
  3880.  3Bh    file already exists
  3881.  3Ch    reject count reached
  3882.  3Dh    work space too small
  3883.  3Eh    incorrect descriptor
  3884.  3Fh    invalid extended insert
  3885.  40h    filter limit reached
  3886.  41h    incorrect field offset
  3887.  4Ah    automatic transaction abort
  3888.  4Eh    deadlock detected
  3889.  50h    conflict
  3890.  51h    lock error
  3891.  52h    lost position
  3892.  53h    read outside transaction
  3893.  54h    record in use
  3894.  55h    file in use
  3895.  56h    file table full
  3896.  57h    handle table full
  3897.  58h    incompatible open mode
  3898.  5Ah    redirected device table full
  3899.  5Bh    server error
  3900.  5Ch    transaction table full
  3901.  5Dh    incompatible lock type
  3902.  5Eh    permission error
  3903.  5Fh    session no longer valid
  3904.  60h    communications environment error
  3905.  61h    data message too small
  3906.  62h    internal transaction error
  3907. --------I-7B---------------------------------
  3908. INT 7B - Eicon Access API (3270/5250 gateways)
  3909. SeeAlso: INT 5C"NetBIOS"
  3910. --------A-7B---------------------------------
  3911. INT 7B CU - AutoCAD ADI INTERFACE
  3912.     AX = function
  3913.         0000h output blank line
  3914.         other ???
  3915. Return: ???
  3916. Note:    called by AutoCAD to perform its output
  3917. SeeAlso: INT 78"AutoCAD",INT 7A"AutoCAD"
  3918. --------E-7B---------------------------------
  3919. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  3920. Note:    this vector is overwritten when GO32 starts but is not restored by
  3921.       early versions of the extender
  3922. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  3923. --------r-7C---------------------------------
  3924. INT 7C U - IBM REXX88PC command language
  3925.     ???
  3926. --------E-7C---------------------------------
  3927. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  3928. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3929.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3930. Note:    this vector is overwritten when GO32 starts but is not restored by
  3931.       early versions of the extender
  3932. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  3933. ----------7C---------------------------------
  3934. INT 7C - PRINDIR v8.02+ - API
  3935.     AH = function
  3936.        00h set output to Invisible mode
  3937.        01h set output to LPT1
  3938.        02h set output to LPT2
  3939.        03h set output to LPT3
  3940.        04h set output to COM1
  3941.        05h set output to COM2
  3942.        06h set output to COM3
  3943.        07h set output to COM4
  3944.        08h set output to screen
  3945.        09h set output to file
  3946.        0Ah change file path
  3947.            ES:DI -> new path
  3948.            CX = length of path (max 41, but not range-checked)
  3949.        0Bh change file name
  3950.            ES:DI -> new filename
  3951.            CX = length of new name (max 41, but not range-checked)
  3952.        0Ch set redirected device
  3953.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  3954.        0Dh force buffer dump
  3955.        0Eh set display color
  3956.            AL = new color attribute (see INT 10/AH=08h)
  3957.        0Fh set popup hotkey
  3958.            AL = hotkey scancode
  3959.        10h toggle byte display
  3960.            AL = new state (00h off, 01h on)
  3961.        11h change buffer flush delay
  3962.            AL = timer ticks before flush
  3963. Return: AX = status
  3964.         0000h successful
  3965.         0001h invalid function or nothing in buffer to be dumped
  3966.         (documented as "nonzero = error")
  3967. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  3968.       Creations
  3969. Notes:    the installation check consists of testing for the ASCIZ signature
  3970.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  3971.       the start of the interrupt handler
  3972.     prior versions of PRINDIR used INT 7A instead of INT 7C
  3973. SeeAlso: INT 7A"PRINDIR"
  3974. Index:    hotkeys;PRINDIR
  3975. --------N-7C---------------------------------
  3976. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  3977. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3978.       which provides an API on top of it Data Link Interface, allowing the
  3979.       use of any of several network transport layers; this product is
  3980.       called SK-PASSPORT in the USA.
  3981. Notes:    The installation check consists of testing for the ASCII signature
  3982.      string "UPPS_DLI" immediately preceding the interrupt handler.
  3983.     To find the service interrupt being used by the driver, an application
  3984.      should scan through the interrupt table until it finds an interrupt
  3985.      vector with the "UPPS_DLI" string.
  3986.     There may be more than one DLI loaded, each having its own service
  3987.      interrupt.
  3988. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  3989. Index:    installation check;SK-UPPS
  3990. --------N-7C0000-----------------------------
  3991. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  3992.     AX = 0000h
  3993. Return: AH = major DLI version
  3994.     AL = minor DLI version
  3995.     DX = OEM signature (see below)
  3996.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  3997. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  3998.  
  3999. OEM signatures (defined by SK):
  4000.  0001h experimental
  4001.  3343h 3COM
  4002.  4942h IBM
  4003.  4943h Intellicom
  4004.  494Eh Intel
  4005.  4B4Fh Kodiak
  4006.  4D41h Madge
  4007.  4E45h Novell
  4008.  4F43h Olicom
  4009.  5349h Siemens
  4010.  534Bh Schneider & Koch (SysKonnect)
  4011.  5744h Western Digital
  4012. --------N-7C0001-----------------------------
  4013. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  4014.     AX = 0001h
  4015. Return: AX = completion code (see below)
  4016. Note:    the DLI will refuse to unload if there are any protocols
  4017.      (see AX=0007h) or clients (see AX=0010h) active.
  4018. Index:    uninstall;SK-UPPS Data Link Interface
  4019.  
  4020. Completion codes:
  4021.  0000h SUCCESS
  4022.  0005h INVALID_MULTICAST
  4023.  0006h BUFFER_TOO_SMALL
  4024.  0007h NO_BUFFERS_LEFT
  4025.  0008h NO_RESOURCES_LEFT
  4026.  000Bh ILLEGAL_PROTOCOL_ID
  4027.  000Ch PROTOCOL_IN_USE
  4028.  000Dh NO_MULTICAST_ADDRESS
  4029.  000Fh PROTOCOLS_ACTIVE
  4030.  0010h CLIENTS_ACTIVE
  4031.  001Bh INVALID_MODE
  4032.  001Ch MODE_NOT_SUPPORTED
  4033.  FFFFh UNKNOWN_SERVICE
  4034. --------N-7C0002-----------------------------
  4035. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  4036.     AX = 0002h
  4037.     ES:DI -> Status Information Block (SIB) (see AX=000Eh, description of
  4038.         Driver Information Block)
  4039. Return: AX = completion code (see AX=0001h)
  4040. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  4041. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  4042. --------N-7C0003-----------------------------
  4043. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  4044.     AX = 0003h
  4045.     ES:DI -> new node address (6 bytes)
  4046. Return: AX = completion code (see AX=0001h)
  4047. Note:    the DLI will refuse to change the address if any protocols
  4048.       (see AX=0007h) are active
  4049. SeeAlso: AX=0001h,AX=000Eh
  4050. --------N-7C0004-----------------------------
  4051. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  4052.     AX = 0004h
  4053.     DX = protocol id (see AX=0007h)
  4054. Return: AX = completion code (see also AX=0001h)
  4055.         0000h successful
  4056.         ES:BX -> Memory Buffer (Mbuf) (see below)
  4057. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  4058.      protocol and later call the protocol's Event Upcall with
  4059.      EV_BUFFER_AVAILABLE (see AX=0007h) as soon as an Mbuf becomes
  4060.      available.  There will only be one "buffer available" Upcall, even
  4061.      if this function has been called several times before.
  4062. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  4063.  
  4064. Format of Memory Buffer (Mbuf):
  4065. Offset    Size    Description
  4066.  00h    DWORD    -> NEXT Mbuf (linked list)
  4067.  04h    WORD    OFFSET of actual data within DATA area
  4068.  06h  2 BYTEs    reserved (currently unused)
  4069.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  4070.  0Ah  2 BYTEs    reserved (currently unused)
  4071.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  4072.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  4073.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  4074.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  4075. --------N-7C0005-----------------------------
  4076. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  4077.     AX = 0005h
  4078.     ES:BX -> Mbuf (see AX=0004h)
  4079. Return: nothing
  4080. SeeAlso: AX=0004h
  4081. --------N-7C0006-----------------------------
  4082. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  4083.     AX = 0006h
  4084.     ES:BX -> Mbuf (see AX=0004h)
  4085. Return: nothing
  4086. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  4087.      at OFFSET. A complete and valid frame must be stored there. The DLI
  4088.      will only copy the current node address (see AX=0003h) to the
  4089.      source node field of the frame's MAC header.
  4090.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  4091.      of the value found in the LENGTH field.
  4092.     Returns immediately; the DLI will call the protocol's Transmit Upcall
  4093.      (see AX=0007h) when the frame has been sent.
  4094.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  4095.      Transmit Upcall.
  4096. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  4097.  
  4098. Transmit Upcall called with:
  4099.     ES:BX -> Mbuf (NEXT field destroyed)
  4100.     interrupts disabled
  4101. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  4102.      header have been bit-swapped to physical address format.
  4103. --------N-7C0007-----------------------------
  4104. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  4105.     AX = 0007h
  4106.     ES:BX -> Protocol Control Block (see below)
  4107. Return: AX = completion code (see AX=0001h)
  4108. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4109.       which provides an API on top of it Data Link Interface, allowing the
  4110.       use of any of several network transport layers
  4111. SeeAlso: AX=0008h,AX=000Bh
  4112.  
  4113. Format of Protocol Control Block (PCB):
  4114. Offset    Size    Description
  4115.  00h    WORD    protocol type (high-low)
  4116.  02h    WORD    protocol mode (see below)
  4117.  04h    DWORD    -> Receive Upcall routine
  4118.  08h    DWORD    -> Transmit Upcall routine
  4119.  0Ch    DWORD    -> Event Upcall routine
  4120.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  4121.  14h    WORD    protocol id will be returned here (always non-zero)
  4122.  
  4123. Bitfields for protocol mode:
  4124.  bit 0    promiscuous mode; protocol receives all frames regardless of their
  4125.      destination (PROTOCOL TYPE must be FFFFh)
  4126.  bit 1    if set, protocol's Event Upcall will be called on entry and exit of the
  4127.      DLI's Interrupt Service Routine (see event codes below)
  4128.  bit 2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  4129.      this station (PROTOCOL TYPE must be FFFFh)
  4130.  bit 3    DLI 2.3+ receive error frames (only valid in promiscuous mode (bit 0))
  4131.  bit 4-5 DLI 2.5+ frame type:
  4132.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  4133.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  4134.         (offset 0) of PROCOTOL TYPE field; LSB must be zero
  4135.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  4136.         field (high-low)
  4137.     11 reserved (currently unused)
  4138.  bit 6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  4139.      EV_BUFFER_WANTED, when DLI runs out of Mbufs
  4140.  bit 7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  4141.      be shared with other clients
  4142.  bit 8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  4143.  bit 9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  4144.  bit 10-15 reserved (currently unused; must be zero)
  4145. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  4146.      mode bit is set, the protocol receives all frames that did not match
  4147.      any registered frame type (demultiplexor mode).
  4148.     Protocols using "promiscuous", "hook" or "chain" mode should always
  4149.      return from the Receive Upcall with the received Mbuf in ES:BX and the
  4150.      Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  4151.      BUFFER function (see AX=000Fh).
  4152.     Some DLIs do not support all or even any of the "promiscuous",
  4153.      "receive non-LLC" and "receive all multicasts" mode bits.
  4154.  
  4155. Receive Upcall called with:
  4156.  ES:BX -> Mbuf
  4157.  AX = receive status (see below; also stored in Mbuf's RECEIVE STATUS field)
  4158.  interrupts disabled
  4159.  
  4160. Bitfields for receive status (reserved bits currently unused and always zero):
  4161.  bit 0-2 reserved
  4162.  bit 3    frame check sequence (FCS) error
  4163.  bit 4    overflow (frame too long)
  4164.  bit 5    framing error
  4165.  bit 6    reserved
  4166.  bit 7    non-LLC frame (see bit 8 of PCB's protocol mode field)
  4167.  bit 8-15 reserved
  4168. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  4169.      matching the specified frame type is received. A received frame is
  4170.      passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  4171.      is LENGTH bytes.
  4172.     The receive status passed to the Receive Upcall in register AL is
  4173.      always zero, except for protocols using "non-LLC" mode (bit 8 of PCB's
  4174.      protocol mode field) or "promiscuous" mode together with "receive
  4175.      error frames" (bits 0 & 3).
  4176.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  4177.      Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  4178.      must point to an Mbuf, which the DLI will then pass to the RELEASE
  4179.      BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  4180.  
  4181. Event Upcall called with:
  4182.  AX = event code (see below)
  4183. Note:    All Event Upcalls may be ignored by the protocol.
  4184.  
  4185. Event codes found in register AX on Event Upcall:
  4186.  00h EV_BUFFER_AVAILABLE  client may now call REQUEST BUFFER (AX=0004h)
  4187.  01h EV_ISR_START    start of Interrupt Service Routine
  4188.  02h EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  4189.  03h EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  4190.  04h EV_NETWORK_STATUS    DLI 2.8+ network status (DX=status; see below)
  4191.  05h EV_IO_CONTROL    DLI 2.8+ I/O control (DX=subfunction; see AX=0016h)
  4192.  
  4193. Bitfields for EV_NETWORK_STATUS in register DX:
  4194.     Token-Ring        FDDI
  4195.  bit 15 SIGNAL_LOSS        SIGNAL_LOSS
  4196.  bit 14 HARD_ERROR        HARD_ERROR
  4197.  bit 13 SOFT_ERROR        SOFT_ERROR
  4198.  bit 12 TRANSMIT_BEACON        TRANSMIT_BEACON
  4199.  bit 11 LOBE_WIRE_FAULT        PATH_TEST_FAILED
  4200.  bit 10 AUTO_REMOVAL        SELF_TEST_REQUIRED
  4201.  bit 9    reserved        reserved
  4202.  bit 8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  4203.  bit 7    COUNTER_OVERFLOW    reserved
  4204.  bit 6    SINGLE_STATION        DUPLICATE_ADDRESS
  4205.  bit 5    RING_RECOVERY        NO_RING_OP_STATUS
  4206.  bit 4    reserved        VERSION_MISMATCH
  4207.  bit 3    reserved        STUCK_BYPASS
  4208.  bit 2    reserved        FDDI_EVENT
  4209.  bit 1    reserved        RING_OP_CHANGE
  4210.  bit 0    reserved        reserved
  4211. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  4212. --------N-7C0008-----------------------------
  4213. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  4214.     AX = 0008h
  4215.     BX = protocol id (see AX=0007h)
  4216. Return: AX = completion code (see AX=0001h)
  4217. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  4218.      they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  4219.     all multicast addresses registered for this protocol will be disabled.
  4220.     after this function returns, the protocol's Upcall routines will no
  4221.      longer be called.
  4222. SeeAlso: AX=0007h,AX=000Bh
  4223. --------N-7C0009-----------------------------
  4224. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  4225.     AX = 0009h
  4226.     BX = protocol id (see AX=0007h)
  4227.     ES:DI -> multicast address (6 bytes)
  4228. Return: AX = completion code (see AX=0001h)
  4229. Notes:    The broadcast address is always enabled.
  4230.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  4231.      (AX=0007h) to receive all multicast frames.
  4232. SeeAlso: AX=000Ah,AX=0014h
  4233. --------N-7C000A-----------------------------
  4234. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  4235.     AX = 000Ah
  4236.     BX = protocol id (see AX=0007h)
  4237.     ES:DI -> multicast address (6 bytes)
  4238. Return: AX = completion code (see AX=0001h)
  4239. SeeAlso: AX=0009h,AX=0014h
  4240. --------N-7C000B-----------------------------
  4241. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  4242.     AX = 000Bh
  4243.     ES:DI -> protocol id buffer
  4244.     CX = number of 2-byte protocol ids that may be stored in buffer
  4245. Return: AX = completion code (see AX=0001h)
  4246.     CX = number of active protocols (regardless of value returned in AX)
  4247.     protocol id buffer filled with active protocol ids
  4248. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4249.       which provides an API on top of it Data Link Interface, allowing the
  4250.       use of any of several network transport layers
  4251. Note:    If the buffer supplied is too small, CX still contains the total number
  4252.      of active protocols and the buffer has been filled until full.
  4253. SeeAlso: AX=000Ch,AX=0014h
  4254. --------N-7C000C-----------------------------
  4255. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  4256.     AX = 000Ch
  4257.     BX = protocol id (see AX=000Bh)
  4258.     ES:DI -> Protocol Status Block (see below)
  4259. Return: AX = completion code (see AX=0001h)
  4260. SeeAlso: AX=000Bh,AX=0014h
  4261.  
  4262. Format of Protocol Status Block (PSB):
  4263. Offset    Size    Description
  4264.  00h    DWORD    -> ASCIZ protocol name
  4265.  04h    WORD    protocol mode (see AX=0007h)
  4266.  06h    WORD    protocol type (see AX=0007h)
  4267.  08h    WORD    number of registered multicasts (see AX=0009h, AX=0014h)
  4268. --------N-7C000D-----------------------------
  4269. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  4270.     AX = 000Dh
  4271.     BX = flag: 0=don't clear statistics, 1=clear statistics
  4272.     ES:DI -> Statistics Data Block (see below)
  4273. Return: AX = completion code (see AX=0001h)
  4274. SeeAlso: AX=0002h,AX=0015h
  4275.  
  4276. Format of Statistics Data Block (SDB):
  4277. Offset    Size    Description
  4278.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  4279.  04h    DWORD    bytes received
  4280.  08h    DWORD    bytes transmitted
  4281.  0Ch    DWORD    frames received
  4282.  10h    DWORD    frames transmitted
  4283.  14h    DWORD    multicast bytes received
  4284.  18h    DWORD    multicast frames received
  4285.  1Ch    DWORD    unrecognized frames
  4286.  20h    WORD    missed frames
  4287.  22h    WORD    frame check sequence (FCS) errors
  4288.  24h    WORD    framing errors
  4289.  26h    WORD    babbling errors
  4290.  28h    WORD    late collision errors
  4291.  2Ah    WORD    loss of carrier errors
  4292.  2Ch    WORD    16 retries failed errors
  4293.  2Eh    WORD    overflow errors
  4294. Note:    fields 26h through 2Ch are always zero, except in some very old
  4295.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  4296.       more detailed information.
  4297. --------N-7C000E-----------------------------
  4298. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  4299.     AX = 000Eh
  4300.     ES:DI -> Driver Information Block (see below)
  4301.     BX = offset of 1st field within DIB to be returned
  4302.     CX = number of bytes to be returned
  4303. Return: AX = completion code (see AX=0001h)
  4304.     CX = number of bytes copied (regardless of value returned in AX)
  4305. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4306.       which provides an API on top of it Data Link Interface, allowing the
  4307.       use of any of several network transport layers
  4308. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  4309.  
  4310. Format of Driver Information Block (DIB):
  4311. Offset    Size    Description
  4312.  00h  6 BYTEs    physical node address (from adapter's ROM)
  4313.  06h  6 BYTEs    current node address (see AX=0003h)
  4314.  0Ch    BYTE    adapter id (defined by OEM)
  4315.  0Dh    BYTE    IRQ line (FFh if none)
  4316.  0Eh    DWORD    -> shared memory (zero if none)
  4317.  12h    DWORD    size of shared memory (zero if none)
  4318.  16h    WORD    base I/O port (zero if none)
  4319.  18h    BYTE    DMA line (FFh if none)
  4320.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  4321.  1Ah    WORD    size of an Mbuf's DATA area (see AX=0004h)
  4322.  1Ch  2 BYTEs    reserved (currently unused)
  4323.  1Eh    WORD    total number of Mbufs the DLI has
  4324.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  4325.          BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  4326.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  4327.  22h    DWORD    -> ASCIZ adapter name
  4328.  26h    WORD    number of I/O ports used (zero if none)
  4329.  28h    DWORD    line speed in bits/sec.
  4330. --------N-7C000F-----------------------------
  4331. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  4332.     AX = 000Fh
  4333.     ES:BX -> Mbuf
  4334. Return: nothing
  4335. Notes:    A protocol may call this function instead of returning the Mbuf
  4336.      directly from the Receive Upcall if it is running in "promiscuous",
  4337.      "hook" or "chain" mode.
  4338. SeeAlso: AX=0007h
  4339. --------N-7C0010-----------------------------
  4340. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  4341.     AX = 0010h
  4342. Return: nothing
  4343. Notes:    An application having no active protocols may call this function to
  4344.      prevent the DLI from unloading.
  4345. SeeAlso: AX=0001h,AX=0011h
  4346. --------N-7C0011-----------------------------
  4347. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  4348.     AX = 0011h
  4349. Return: nothing
  4350. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4351.       which provides an API on top of it Data Link Interface, allowing the
  4352.       use of any of several network transport layers
  4353. SeeAlso: AX=0010h
  4354. --------N-7C0012-----------------------------
  4355. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  4356.     AX = 0012h
  4357.     DX = protocol id (see AX=0007h)
  4358. Return: AX = completion code (see AX=0001h)
  4359.     if AX=0000h: ES:BX -> Mbuf (see AX=0004h)
  4360. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  4361.      REQUEST BUFFER (AX=0004h) should be used instead.
  4362. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  4363. --------N-7C0013-----------------------------
  4364. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  4365.     AX = 0013h
  4366.     ES:BX -> Mbuf (see AX=0004h)
  4367. Return: nothing
  4368. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  4369.     The Mbuf may no more be used by the protocol in any way (i.e. the
  4370.      Mbuf's IN USE field may not be polled).
  4371. SeeAlso: AX=0004h,AX=0013h
  4372. --------N-7C0014-----------------------------
  4373. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  4374.     AX = 0014h
  4375.     BX = protocol id (see AX=000Bh)
  4376.     ES:DI -> multicast address buffer
  4377.     CX = number of 6-byte multicast addresses that may be stored in buffer
  4378. Return: AX = completion code (see AX=0001h)
  4379.     CX = number of registered multicast addresses for this protocol
  4380.      (regardless of value returned in AX)
  4381.     multicast address buffer filled with multicast addresses registered for
  4382.      this protocol
  4383. Note:    If the buffer supplied is too small, CX still contains the total number
  4384.      of registered multicast addresses for this protocol and the buffer has
  4385.      been filled until full.
  4386. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  4387. --------N-7C0015-----------------------------
  4388. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  4389.     AX = 0015h
  4390.     ES:DI -> media-specific statistics buffer (see below)
  4391.     BX = offset of 1st field within MSS to be returned
  4392.     CX = number of bytes to be returned
  4393. Return: AX = completion code (see AX=0001h)
  4394.     CX = number of bytes copied (regardless of value returned in AX)
  4395. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  4396. SeeAlso: AX=0000h,AX=000Dh
  4397.  
  4398. Format of media-specific statistics for Ethernet:
  4399. Offset    Size    Description
  4400.  00h    DWORD    alignment errors
  4401.  04h    DWORD    frame check sequence (FCS) errors
  4402.  08h    DWORD    single collision frames
  4403.  0Ch    DWORD    multiple collision frames
  4404.  10h    DWORD    signal quality error (SQE) test errors
  4405.  14h    DWORD    deferred transmissions
  4406.  18h    DWORD    late collisions
  4407.  1Ch    DWORD    excessive collisions
  4408.  20h    DWORD    internal MAC transmit errors
  4409.  24h    DWORD    carrier sense errors
  4410.  28h    DWORD    excessive deferrals
  4411.  2Ch    DWORD    frame too longs
  4412.  30h    DWORD    in range length errors
  4413.  34h    DWORD    out of range length fields
  4414.  38h    DWORD    internal MAC receive errors
  4415.  
  4416. Format of media-specific statistics for FDDI:
  4417. Offset    Size    Description
  4418.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  4419.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  4420.          5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  4421.  08h    DWORD    SMT frames sent
  4422.  0Ch    DWORD    SMT frames received
  4423.  10h    DWORD    SMT ring up count
  4424.  14h  6 BYTEs    MAC upstream neighbour
  4425.  1Ah  6 BYTEs    MAC downstream neighbour
  4426.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  4427.  24h    DWORD    MAC error counter ( " )
  4428.  28h    DWORD    MAC lost counter ( " )
  4429.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  4430.          is reported as the absolute value of the exponent)
  4431.  2Dh    BYTE    port 2 link error estimate ( " )
  4432.  2Eh  2 BYTEs    reserved (currently unused)
  4433.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  4434.          2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  4435.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  4436.  
  4437. Format of media-specific statistics for Token-Ring:
  4438. Offset    Size    Description
  4439.  00h  6 BYTEs    upstream neighbour
  4440.  06h    WORD    local ring number
  4441.  08h    DWORD    ring up count
  4442.  0Ch    DWORD    signal loss errors
  4443.  10h    DWORD    lobe wire faults
  4444.  14h    DWORD    ring recovery count
  4445.  18h    DWORD    line errors
  4446.  1Ch    DWORD    burst errors
  4447.  20h    DWORD    ARI/FCI errors
  4448.  24h    DWORD    lost frame errors
  4449.  28h    DWORD    receive congestion errors
  4450.  2Ch    DWORD    frame copied errors
  4451.  30h    DWORD    token errors
  4452.  34h    DWORD    DMA bus errors
  4453.  38h    DWORD    DMA parity errors
  4454.  3Ch    DWORD    receive overflow errors
  4455. --------N-7C0016-----------------------------
  4456. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER IO CONTROL
  4457.     AX = 0016h
  4458.     DX = subfunction; bits 14-15 specify direction of I/O:
  4459.         00 no data at all (ES:BX undefined)
  4460.         01 driver -> application (GET)
  4461.         10 application -> driver (SET)
  4462.         11 both directions (GET/SET)
  4463.     ES:BX -> I/O buffer (optional)
  4464.     CX = size of buffer (if ES:BX valid)
  4465. Return: AX = completion code; defined by OEM
  4466. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4467.       which provides an API on top of it Data Link Interface, allowing the
  4468.       use of any of several network transport layers
  4469. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  4470.     subfunction codes are defined by OEMs
  4471. SeeAlso: AX=0001h
  4472. --------N-7C0017-----------------------------
  4473. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  4474.     AX = 0017h
  4475. Return: AX = completion code (see AX=0001h)
  4476. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  4477.     must be called with interrupts disabled; when the client re-enables
  4478.      interrupts, an interrupt will be generated and reported to the client
  4479.      through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  4480. SeeAlso: AX=0007h
  4481. --------t-7D---------------------------------
  4482. INT 7D - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  4483. Note:    this interface has been moved to INT 2D; there are no known
  4484.       implementations on INT 7D
  4485. SeeAlso: INT 2D,INT 2F
  4486. --------S-7D---------------------------------
  4487. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  4488. SeeAlso: INT 7E"YTERM"
  4489. --------E-7D---------------------------------
  4490. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  4491. Note:    this vector is overwritten when GO32 starts but is not restored by
  4492.       early versions of the extender
  4493. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  4494. --------U-7D---------------------------------
  4495. INT 7D - HyperPAD v2.2 - API ACCESS
  4496. Note:    this vector is hooked but immediately passed on (without checking
  4497.       whether the previous handler was 0000h:0000h).  The sole purpose of
  4498.       this vector is to provide the address of the data area described
  4499.       below.
  4500.  
  4501. Format of HyperPAD data area:
  4502. Offset    Size    Description
  4503.  -16h    DWORD    pointer to ??? FAR function
  4504.  -12h    DWORD    pointer to callback setting function
  4505.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  4506.  -0Eh 6 BYTEs    signature "BRC001"
  4507.  -08h    DWORD    pointer to previous INT 7D handler
  4508.  -04h    DWORD    pointer to ??? data
  4509.  00h        HyperPAD INT 7D handler
  4510. ----------7D00-------------------------------
  4511. INT 7D - SCSILink - RESET SCSI BUS
  4512.     AH = 00h
  4513. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  4514.       cross assemblers and similar products to communicate with Cross
  4515.       Products hardware debuggers
  4516. Desc:    reset all devices on the SCSI bus
  4517. Note:    the installation check is the signature "SCSILINK" immediately prior
  4518.       to the interrupt handler
  4519. Index:    installation check;SCSILink
  4520. ----------7D01-------------------------------
  4521. INT 7D - SCSILink - CONNECT TO TARGET
  4522.     AH = 01h
  4523.     AL = target ID
  4524. Return: CF clear if successful
  4525.     CF set on error
  4526.         AL = initiator error
  4527.         AH = target error
  4528. Desc:    arbitrate the use of the bus and select the specified target device
  4529. ----------7D02-------------------------------
  4530. INT 7D - SCSILink - SEND COMMAND
  4531.     AH = 02h
  4532.     ES:BX -> parameter block (see below)
  4533. Return: CF clear if successful
  4534.     CF set on error
  4535.         AL = initiator error
  4536.         AH = target error
  4537. Desc:    send the specified command block to the target device and perform any
  4538.       related I/O
  4539.  
  4540. Format of parameter block:
  4541. Offset    Size    Description
  4542.  00h    DWORD    size of command block
  4543.  04h    DWORD    address of command block (see below)
  4544.  08h    DWORD    size of buffer
  4545.  0Ch    DWORD    address of buffer
  4546.  
  4547. Format of command block:
  4548. Offset    Size    Description
  4549.  00h        info not yet available
  4550. ----------7D03-------------------------------
  4551. INT 7D - SCSILink - SET TIMEOUT
  4552.     AH = 03h
  4553.     AL = timeout selector (see below)
  4554.     BX = new value in 55ms ticks
  4555. Desc:    change an internal timeout value to allow communication with very
  4556.       slow targets
  4557.  
  4558. Values for timeout selector:
  4559.  00h    time to wait for bus (default 18)
  4560.  01h    time to wait for new phase (default 5)
  4561.  02h    maximum time to send/receive block (default 18)
  4562.  03h    time to wait for reselect (default 180)
  4563. ----------7D04-------------------------------
  4564. INT 7D - SCSILink - GET ERROR STRING
  4565.     AH = 04h
  4566.     AL = error number
  4567. Return: ES:BX -> ASCIZ error string for error number
  4568. ----------7D05-------------------------------
  4569. INT 7D - SCSILink - GET ADDRESS
  4570.     AH = 05h
  4571. Return: AL = DMA channel
  4572.     AH = initiator ID
  4573.     BX = card address
  4574. Desc:    determine the current hardware configuration
  4575. ----------7D06-------------------------------
  4576. INT 7D - SCSILink - PUT DATA
  4577.     AH = 06h
  4578.     CX = number of bytes to store (0001h-0100h)
  4579.     ES:BX -> data to be saved
  4580. Return: CF clear if successful
  4581.     CF set on error
  4582.         AL = error code (01h = too much data)
  4583. Note:    the specified data is stored in SCSILink's PSP
  4584. SeeAlso: AH=07h
  4585. ----------7D07-------------------------------
  4586. INT 7D - SCSILink - GET DATA
  4587.     AH = 07h
  4588.     CX = number of bytes to retrieve (0001h-0100h)
  4589.     ES:BX -> buffer for data
  4590. Return: CF clear if successful
  4591.     CF set on error
  4592.         AL = error code (01h = too much data)
  4593. Note:    retrieve data previously stored with AH=06h
  4594. SeeAlso: AH=06h
  4595. ----------7D08-------------------------------
  4596. INT 7D - SCSILink - TERMINATE SESSION
  4597.     AH = 08h
  4598. Desc:    indicate to any other programs that intercept INT 7D that the program
  4599.       has finished with the link
  4600. Note:    the program should call this function even if a SCSI error caused its
  4601.       termination
  4602. ----------7D09-------------------------------
  4603. INT 7D - SCSILink - POLL REQUEST
  4604.     AH = 09h
  4605.     AL = target ID
  4606. Return: AL = status
  4607.         FEh resident driver experienced SCSI error
  4608.         FFh resident driver handleded event
  4609. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  4610.       not specifically handled by the calling program
  4611. Notes:    this service exists so that resident disk servers, etc. can continue
  4612.       running even while debuggers and profilers are active
  4613.     the resident driver assumes that a connection has been established and
  4614.       attempts to leave the target connected
  4615. --------*-7E---------------------------------
  4616. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  4617. --------S-7E---------------------------------
  4618. INT 7E U - YTERM 1.4 - ???
  4619. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  4620. --------E-7E---------------------------------
  4621. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  4622. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  4623.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  4624. Note:    this vector is overwritten when GO32 starts but is not restored by
  4625.       early versions of the extender
  4626. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  4627. --------m-7E5857BL57-------------------------
  4628. INT 7E - XLOAD - INSTALLATION CHECK
  4629.     AX = 5857h
  4630.     BL = 57h
  4631. Return: AX = 0000h if installed
  4632. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  4633. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  4634. --------m-7E5857BL5A-------------------------
  4635. INT 7E - XLOAD - GET ???
  4636.     AX = 5857h
  4637.     BL = 5Ah
  4638. Return: AX = 0000h
  4639.     CX = ???
  4640.     DS:SI -> ???
  4641. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  4642. --------m-7E5857BL5B-------------------------
  4643. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  4644.     AX = 5857h
  4645.     BL = 5Bh
  4646. Return: AX = 0000h
  4647.     CX = segment of XLOAD TSR
  4648.     DX = size of memory block in which XLOAD TSR is located
  4649. SeeAlso: AX=5857h/BL=57h/AX=5857h/BL=5Ah
  4650. --------V-7F---------------------------------
  4651. INT 7F - IBM XGA - ???
  4652. --------V-7F---------------------------------
  4653. INT 7F - Halo88 - API
  4654.     BX = function
  4655.         64h arc
  4656.         65h bar
  4657.         66h box
  4658.         67h circle
  4659.         68h clr
  4660.         69h default hatch style
  4661.         6Ah default line style
  4662.         6Bh delhcur
  4663.         6Ch delln / deltcur
  4664.         6Dh ellipse
  4665.         6Eh fill
  4666.         6Fh flood
  4667.         70h flood2
  4668.         71h init graphics
  4669.         72h init hcur
  4670.         73h init marker
  4671.         74h init tcur
  4672.         75h inqarc
  4673.         76h inqbknd
  4674.         77h inqclr
  4675.         78h inqerr
  4676.         79h inqgcur
  4677.         7Ah inqhcur
  4678.         7Bh inqmarker
  4679.         7Dh inqtcur
  4680.         7Eh inqtext
  4681.         7Fh lnabs
  4682.         80h lnrel
  4683.         81h markerabs
  4684.         82h markerrel
  4685.         83h moveabs
  4686.         84h movehcurabs
  4687.         85h movehcurrel
  4688.         86h moverel
  4689.         87h movetcurabs
  4690.         88h movetcurrel
  4691.         89h movefrom
  4692.         8Ah moveto
  4693.         8Bh pie
  4694.         8Ch polylnabs
  4695.         8Dh polylnrel
  4696.         8Eh ptabs
  4697.         8Fh ptrel
  4698.         91h setasp
  4699.         92h set color
  4700.         93h set font
  4701.         94h set hatch style
  4702.         95h set line style
  4703.         97h settext
  4704.         98h set text color
  4705.         99h btext
  4706.         9Ah setseg
  4707.         9Bh display
  4708.         9Ch setscreen
  4709.         9Eh close graphics
  4710.         9Fh ftinit
  4711.         A0h ftlocate
  4712.         A1h ftext
  4713.         A5h set viewport
  4714.         A6h set window
  4715.         A7h set world
  4716.         AAh ftcolor
  4717.         ACh initlp
  4718.         ADh inqasp
  4719.         AEh inqdev
  4720.         AFh inqdisplay
  4721.         B0h inqft
  4722.         B1h inqftcolor
  4723.         B2h inqinterlace
  4724.         B3h inqlpa
  4725.         B4h inqlpg
  4726.         B5h inqmode
  4727.         B6h inqscreen
  4728.         B7h inqversion
  4729.         B8h roam
  4730.         B9h scroll
  4731.         BAh setieee
  4732.         BBh set interlace
  4733.         BCh shift
  4734.         BDh start graphics
  4735.         BEh vpan
  4736.         CBh gwrite
  4737.         CCh gread
  4738.         CDh setxor
  4739.         CEh rbox
  4740.         CFh rcir
  4741.         D0h rlnabs
  4742.         D1h rlnrel
  4743.         D2h delbox
  4744.         D3h delcir
  4745.         D5h setseg2
  4746.         DCh worldoff
  4747.         DDh mapwtod
  4748.         DEh mapdtow
  4749.         DFh mapwton
  4750.         E0h mapntow
  4751.         E1h mapdton
  4752.         E2h mapntod
  4753.         E3h inqworld
  4754.         E4h inqviewport
  4755.         E5h set line width
  4756.         E6h lnjoint
  4757.         E7h set locator
  4758.         E8h read locator
  4759.         E9h setdev
  4760.         EBh setstext
  4761.         ECh setstclr
  4762.         EDh setstang
  4763.         EEh stext
  4764.         EFh inqstext
  4765.         F0h setdegree
  4766.         F1h inqstsize
  4767.         F2h polyfabs
  4768.         F3h polyfrel
  4769.         F4h inqdrange
  4770.         F5h inqstang
  4771.         F6h orglocator
  4772.         F7h inqlocator
  4773.         F8h inqarea
  4774.         F9h setipal
  4775.         FAh setborder
  4776.         FBh inqcrange
  4777.         FEh setclip
  4778.         FFh fcir
  4779.            100h setcrange
  4780.            101h setdrange
  4781.            102h setlattr
  4782.            103h polycabs
  4783.            104h polycrel
  4784.            108h memcom
  4785.            109h memexp
  4786.            10Ah memmov
  4787.            10Eh movefx
  4788.            10Fh movetx
  4789.            110h inqrgb
  4790.            111h save image
  4791.            112h restore image
  4792.            113h setapal
  4793.            114h setxpal
  4794.            118h inqtsize
  4795.            12Eh gprint
  4796.            130h setprn
  4797.            131h setpattr
  4798.            133h setbattr
  4799.            135h pexpand
  4800.            136h ptnorm
  4801.            137h pfnorm
  4802.            13Bh inqprn
  4803.            13Ch lopen
  4804.            13Dh lclose
  4805.            13Eh lappend
  4806.            13Fh lrecord
  4807.            140h lswitch
  4808.            142h inqfun
  4809.            15Dh lsetup
  4810.            15Eh lrest
  4811.            15Fh lsave
  4812.     additional parameters on stack
  4813. Return: ???
  4814. Program: Halo88 is a suite of graphics routines
  4815. Note:    according to Stuart Kemp, the code appears to make no provisions for
  4816.        chaining
  4817. --------N-7F---------------------------------
  4818. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  4819.     AL = request ID
  4820.         01h "Request"/"RequestDirect"
  4821.         ES:BX -> pRq
  4822.         DX ignored
  4823.         04h "Wait"
  4824.         ES:BX -> ppMsgRet
  4825.         DX = exchange
  4826.         05h "AllocExch"
  4827.         ES:BX -> pExchRet
  4828.         06h "DeAllocExch"
  4829.         DX = exchange
  4830.         07h "Check"
  4831.         ES:BX -> ppMsgRet
  4832.         DX = exchange
  4833.     CX = 4354h ('CT')
  4834. Return: AX = status
  4835.         0000h successful
  4836. --------S-7F---------------------------------
  4837. INT 7F - Telebit ACS SERIAL I/O
  4838.     ES:SI-> parameter block
  4839. Return: CF set on error
  4840.     CF clear on success
  4841. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  4842.       handler; this serves as the installation check
  4843. Index:    installation check;Telebit ACS Serial I/O
  4844.  
  4845. Format of Telebit ACS parameter block:
  4846. Offset    Size    Description
  4847.  00h    BYTE    command (see below)
  4848.  01h    BYTE    gateway number
  4849.  02h    BYTE    reserved
  4850.  03h    BYTE    port
  4851.  04h 17 BYTES    auxiliary buffer
  4852.  15h    BYTE    session
  4853.  16h    WORD    count of bytes passed to API
  4854.  18h    DWORD    buffer pointer passed to/from API
  4855.  1Ch    WORD    count of bytes passed from API
  4856.  1Eh    BYTE    return code (see below)
  4857.  
  4858. Values for command:
  4859.  3Ch    status
  4860.  3Dh    connect
  4861.  3Eh    disconnect
  4862.  3Fh    read
  4863.  40h    data/command write
  4864.  41h    clear receive buffer
  4865.  42h    get configuration
  4866.  43h    get receiver status
  4867.  44h    raw write
  4868.  45h    search servers
  4869.  46h    set transmit buffer size
  4870.  
  4871. Values for return code:
  4872.  00h    success
  4873.  01h    invalid session
  4874.  05h    servername invalid
  4875.  06h    netware fileserver bindery is locked
  4876.  07h    communication server not active
  4877.  08h    general failure in netware fileserver
  4878.  09h    not logged into a fileserver
  4879.  10h    connection table full
  4880.  11h    no response from communication server
  4881.  12h    connection attempt terminated abnormally
  4882.  13h    connection refused - no sessions available
  4883.  14h    gateway number/port already in use
  4884.  15h    invalid connection response
  4885.  16h    port invalid
  4886.  17h    incorrect version in server response
  4887.  18h    gateway number/port combination not configured
  4888.  19h    initialization has not been completed
  4889.  20h    no more sockets are available
  4890.  21h    no active poolname
  4891.  23h    FATAL internal interface error
  4892.  24h    registration of host workstation failed - name is already in use
  4893.  25h    registration of host workstation failed - workstation name table full
  4894.  26h    registration of host workstation failed - only one session may be
  4895.       registered for dial-in
  4896.  FFh    Telebit ACS API is busy - retry later
  4897. --------N-7F---------------------------------
  4898. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  4899. Notes:    the installation check consists of checking for the signature "Lynn"
  4900.       in the four bytes preceding the interrupt handler; if present, the
  4901.       current program is running as a DOS task on a non-dedicated NetWare
  4902.       2.x file server.
  4903.     Before placing the server into "console" mode, it is recommended that
  4904.       NetWare broadcast messages be disabled with INT 21/AX=DE00h.
  4905. SeeAlso: INT 21/AX=DE00h
  4906. Index:    installation check;non-dedicated NetWare server
  4907. --------S-7F---------------------------------
  4908. INT 7F U - YTERM - ???
  4909. SeeAlso: INT 7E"YTERM"
  4910. --------E-7F---------------------------------
  4911. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  4912. Note:    this vector is overwritten when GO32 starts but is not restored by
  4913.       early versions of the DOS extender
  4914. SeeAlso: INT 0F,INT 7E"GO32"
  4915. ----------7F---------------------------------
  4916. INT 7F - Canon IXHND2 Scanner Interface
  4917. --------N-7F---------------------------------
  4918. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  4919. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  4920.       MW386 multitasking system is present (i.e. signature "NXNX")
  4921.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  4922.       load time.  To determine the actual vector used, open the device
  4923.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  4924.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  4925.       be the actual interrupt number being used; the other interrupts may
  4926.       be found with INT 7F/AH=09h/CL=03h
  4927. --------N-7F---------------------------------
  4928. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  4929. Note:    a program may determine that it is running on an ANSK Slave by checking
  4930.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  4931.       address is RAM, and should not be written.  However, the above check
  4932.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  4933.       device driver
  4934. --------N-7F00-------------------------------
  4935. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  4936.     AH = 00h
  4937.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4938. Return: AL = status
  4939.         00h successful
  4940.         01h invalid function
  4941.         02h semaphore already locked
  4942.         03h unable to lock semaphore
  4943.         04h semaphore space exhausted
  4944.         05h host/target PC did not respond (NTNX)
  4945.     AH = semaphore owner if status=02h
  4946. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  4947. --------N-7F01-------------------------------
  4948. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  4949.     AH = 01h
  4950.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4951. Return: AL = status (see AH=00h)
  4952.     AH = semaphore owner if status=02h
  4953. SeeAlso: AH=00h,AH=02h,AH=41h
  4954. --------V-7F01-------------------------------
  4955. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  4956.     AH = 01h
  4957. Return: BX = 1234h if installed
  4958.         DX:AX -> array of FAR entry points
  4959.         CH = driver major version
  4960.         CL = driver minor version
  4961. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  4962. SeeAlso: AX=1234h,AX=4321h
  4963. --------I-7F0104BX0000-----------------------
  4964. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  4965.     AX = 0104h (HLLAPI gate ID)
  4966.     BX = 0000h
  4967.     DS:SI -> parameter control block (see below)
  4968. Return: parameter control block updated
  4969. SeeAlso: AX=0105h,AX=ABCDh
  4970.  
  4971. Format of parameter control block:
  4972. Offset    Size    Description
  4973.  00h  3 BYTEs    signature = 'PCB'
  4974.  03h    BYTE    function number (see below)
  4975.  04h    WORD    segment of control string
  4976.  06h    WORD    offset of control string
  4977.  08h    WORD    length of control string, unless explicit end-of-str char set
  4978.  0Ah    BYTE    unused (IBM)
  4979.         ControlString[0] (Rabbit)
  4980.  0Bh    WORD    return code
  4981.  0Dh    WORD    maximum length of control string (IBM)
  4982.         unused (Rabbit)
  4983.  
  4984. Values for HLLAPI function number:
  4985.  00h    Query system (Attachmate implementation only)
  4986.  01h    Connect presentation space
  4987.  02h    Disconnect presentation space
  4988.  03h    Send string of keystrokes as if typed from keyboard
  4989.  04h    Wait ~60s, returns status of presentation space
  4990.  05h    Copy current presentation space into a user-defined buffer
  4991.  06h    Search presentation space for first occurrence of a specified string
  4992.  07h    Query cursor location in current presentation space
  4993.  08h    Copy part or all of current presentation space into user buffer
  4994.  09h    Set session parameters; parameters vary by vendor
  4995.  0Ah    Get info on sessions currently connected
  4996.  0Bh    Lock current presentation space
  4997.  0Ch    Unlock previously locked presentation space
  4998.  0Dh    Return copy of operator info area (OIA) of current presentation space
  4999.  0Eh    get attribute byte for given position in the current presentation space
  5000.  0Fh    copy string of characters to the current presentation space
  5001.  10h    workstation control functions
  5002.  11h    storage manager functions, intended primarily for BASIC applications
  5003.     (not implemented by Rabbit)
  5004.  12h    set delay period in half-second intervals
  5005.  14h    get info on level of workstation support used
  5006.  15h    reset session parameters to default values
  5007.  16h    get detailed info on the current session
  5008.  17h    start host notification to application on presentation sp or OIA update
  5009.  18h    check host update when host notification enabled
  5010.  19h    stop host notification
  5011.  1Eh    search field within current presentation space for string
  5012.  1Fh    get first positionof a selected field in the current presentation space
  5013.  20h    get length of specified field
  5014.  21h    copy string into a specified field
  5015.  22h    copy specified field into a user-defined buffer
  5016.  23h    create alternate presentation space (IBM only), don't use with BASIC
  5017.  24h    switch to alternate presentation space (IBM only), not with BASIC
  5018.  25h    display cursor in specified area (IBM only), don't use with BASIC
  5019.  26h    display alternate presentation space (IBM only), don't use with BASIC
  5020.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  5021.  32h    start intercepting keystrokes to allow filtering
  5022.  33h    get keystrokes after turning on interception
  5023.  34h    notify operator when keystroke rejected by filter subroutine
  5024.  35h    stop intercepting keystrokes
  5025.  5Ah    send file
  5026.  5Bh    receive file
  5027.  5Ch    run a program (not implemented by Rabbit)
  5028.  5Dh    execute DOS command (not implemented by Rabbit)
  5029.  63h    change presentation space position to PC display row/col or vice versa
  5030.  FFh    Get info on DCA implementation
  5031.  
  5032. Values for LLAPI function number:
  5033.  80h    initialize LLAPI (internal call)
  5034.  83h    set Session ID (one-character ID)
  5035.  84h    read Session ID (one-character ID)
  5036.  85h    lock 327x keyboard
  5037.  86h    unlock 327x keyboard
  5038.  87h    wait for Clear to Send
  5039.  88h    type ASCII character
  5040.  89h    type 327x key
  5041.  8Ah    read keyboard lock state
  5042.  8Fh    force screen update
  5043.  90h    view session
  5044.  91h    relinquish (suspend foreground until background becomes idle)
  5045.  92h    poke screen character
  5046.  93h    poke translated character
  5047.  94h    peek screen character
  5048.  95h    peek translated character
  5049.  96h    set cursor position
  5050.  97h    send scan code (Rabbit only)
  5051.  98h    synchronize (returns after keystroke queue empty)
  5052.  99h    type PC key (Rabbit only)
  5053.  
  5054. Session Parameters for function 09h:
  5055.  ASCII        ??? (Rabbit only)
  5056.  ATTRIB        return attributes in hex
  5057.  NOATTRIB    return attributes as blanks
  5058.  CONPHYS    make physical connection
  5059.  CONLOG        only make logical connection
  5060.  EAB        copy extended attribute bytes along with data
  5061.  NOEAB        copy data only
  5062.  ESC=n        set escape character to "n" (default '@')
  5063.  EOT=n        set end of string character (default 00h)
  5064.  FPAUSE        full-duration pause
  5065.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  5066.  FTWAIT        wait for file transfer to complete (Rabbit only)
  5067.  IPAUSE        interruptible pause
  5068.  RABESC        ??? (Rabbit only)
  5069.  NORABESC    ??? (Rabbit only)
  5070.  SCANCODE    ??? (Rabbit only)
  5071.  STRLEN        use explicit string lengths
  5072.  STREOT        use terminated strings
  5073.  SRCHALL    search entire presentation space
  5074.  SRCHFROM    search from specified offset
  5075.  SRCHFRWD    search forward from position 1
  5076.  SRCHBKWD    search backward from last position in presentation space
  5077.  TIMEOUT=n    ??? (Rabbit only)
  5078.  TWAIT        wait specified time for keyboard ready
  5079.  LWAIT        wait until keyboard ready
  5080.  NWAIT        no wait
  5081.  TRON        enable tracing
  5082.  TROFF        disable tracing
  5083.  AUTORESET    send reset before sending keys with function 03h
  5084.  NORESET    don't send reset
  5085.  QUIET        don't display messages sent with INT 21/AH=09h
  5086.  NOQUIET    allow messages to be displayed
  5087.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  5088.  XLATE        translate extended attribute bytes
  5089.  NOXLATE    don't translate
  5090.  NEWRET        use HLLAPI v3.0 return code conventions
  5091.  OLDRET        use HLLAPI v2.0 return code conventions
  5092. --------V-7F0105-----------------------------
  5093. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  5094.     AX = 0105h
  5095. Return: CF set on error
  5096.     CF clear if successful
  5097.         CX:DX -> array of FAR pointers to entry points
  5098. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  5099.       and then performing a FAR call via the appropriate vector of the
  5100.       entry point array
  5101. SeeAlso: AX=0104h,AX=ABCDh
  5102.  
  5103. Function numbers: (do FAR call via entry_points+4*function)
  5104.  08h    HOPEN
  5105.  10h    HINT
  5106.  13h    HLDPAL
  5107.  15h    HBBW
  5108.  17h    HBBR
  5109.  18h    HBBCHN
  5110.  1Dh    HQMODE
  5111.  22h    HCLOSE
  5112.  30h    HINIT
  5113.  31h    HSYNC
  5114.  39h    HSPAL
  5115.  3Ah    HRPAL
  5116. --------N-7F02-------------------------------
  5117. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  5118.     AH = 02h
  5119.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5120. Return: AL = status
  5121.         00h successful
  5122.         01h invalid function
  5123.         02h semaphore locked by other user
  5124.         AH = semaphore owner
  5125.         03h unable to unlock semaphore
  5126.         05h target PC did not respond
  5127. SeeAlso: AH=00h,AH=01h,AH=42h
  5128. --------f-7F0200-----------------------------
  5129. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  5130.     AX = 0200h
  5131. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  5132. --------N-7F03-------------------------------
  5133. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  5134.     AH = 03h
  5135. Return: AL = user number
  5136.     AH = machine number (MW386)
  5137. Note:    this function call is the recommended method for a CPU-bound process to
  5138.       prevent its priority from being lowered
  5139. SeeAlso: AH=04h,AH=05h,AH=A1h
  5140. --------N-7F04-------------------------------
  5141. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  5142.     AH = 04h
  5143. Return: AL = total number of users on currrent machine (MW386)
  5144.     AL = number of slaves on system (NTNX)
  5145. SeeAlso: AH=03h
  5146. --------N-7F05-------------------------------
  5147. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  5148.     AH = 05h
  5149.     AL = function
  5150.         00h lock system (disable slave services)
  5151.         01h unlock system
  5152.         02h enable spooler
  5153.         03h disable spooler
  5154.         04h enable slave timer update
  5155.         05h disable slave timer update
  5156.         06h enable form feeds
  5157.         07h disable form feeds
  5158. SeeAlso: INT 17/AH=A4h
  5159. --------N-7F05-------------------------------
  5160. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  5161.     AH = 05h
  5162.     DX:DI -> buffer for user information record (see below)
  5163. Notes:    MW386 provides this function for backward compatibility only, and sets
  5164.       many of the fields to zero because they are meaningless under MW386
  5165.     this function has no effect when called by the host (user 0)
  5166. SeeAlso: AH=03h
  5167.  
  5168. Format of user information record:
  5169. Offset    Size    Description
  5170.  00h    WORD    segment of video RAM
  5171.  02h    WORD    segment of secondary copy of video RAM
  5172.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  5173.         flag nonzero if update needed
  5174.  06h    WORD    video NMI enable port
  5175.         (not used by MW386, set to 0000h)
  5176.  08h    WORD    video NMI disable port
  5177.         (not used by MW386, set to 0000h)
  5178.  0Ah    BYTE    processor type
  5179.         00h 8088
  5180.         01h V20
  5181.         02h 8086
  5182.         03h V30
  5183.         06h 80386
  5184.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  5185.         (not used by MW386, set to 0000h)
  5186.  0Dh    WORD    offset of terminal driver
  5187.         (not used by MW386, set to 0000h)
  5188.  0Fh    BYTE    port for console I/O
  5189.         (not used by MW386, set to 0000h)
  5190.  10h    WORD    offset of processor communication busy flag
  5191.         bit 7 set when slave communicating with host
  5192.  12h    WORD    pointer to FAR NX system call
  5193.         (not used by MW386, set to 0000h)
  5194.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  5195.  16h    WORD    offset of command/status word
  5196.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  5197.         nonzero if screen must be repainted
  5198.  1Ah    WORD    offset of screen repaint flag
  5199.  1Ch    WORD    pointer to NEAR NX system call
  5200.         (not used by MW386, set to 0000h)
  5201.  1Eh    WORD    offset for intercept flags
  5202.         (not used by MW386, set to 0000h)
  5203.         intercept flag = FFh if MS-DOS intercepts should be disabled
  5204.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  5205.         lock flag = FFh if backgrnd screen updates should be suspended
  5206.  22h 26 BYTEs    reserved
  5207. --------N-7F06-------------------------------
  5208. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  5209.     AH = 06h
  5210.     AL = drive number (1=A:, 2=B:, etc)
  5211.     ES:DI -> drive info record (see below)
  5212. Return: AX = status
  5213.         0000h successful
  5214.         ES:DI buffer filled
  5215.         0001h not shared drive
  5216.  
  5217. Format of drive info record:
  5218. Offset    Size    Description
  5219.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  5220.  02h    WORD    segment of allocation map (owner table)
  5221.         one byte per FAT entry, containing user ID owning that entry
  5222.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  5223.  06h    WORD    pointer to configuration file
  5224.  08h    WORD    total number of clusters
  5225.  0Ah    WORD    bytes per sector
  5226.  0Ch    WORD    sectors per cluster
  5227.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  5228. --------N-7F06-------------------------------
  5229. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  5230.     AH = 06h
  5231.     DL = drive number (1=A:,2=B:,etc)
  5232.     CX = number of clusters to allocate
  5233. Return: AH = status
  5234.         00h successful
  5235.         CX = number of clusters still free
  5236.         10h invalid shared drive request
  5237.         CL = first and second shared drives
  5238.         11h invalid cluster count (must be 01h-FFh)
  5239. --------N-7F07-------------------------------
  5240. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  5241.     AH = 07h
  5242. Return: ES:DI -> shared drive list (see below)
  5243. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  5244.       be returned as shared
  5245.  
  5246. Format of shared drive list:
  5247. Offset    Size    Description
  5248.  00h    BYTE    string length
  5249.  01h    BYTE    number of shared drives
  5250.  02h  N BYTEs    one byte per shared drive
  5251. --------N-7F08-------------------------------
  5252. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  5253.     AH = 08h
  5254.     CL = function
  5255.         00h get original interrupt vector
  5256.         01h get Network Executive interrrupt
  5257.     AL = interrupt number
  5258.     DX:SI -> DWORD to hold interrupt vector
  5259. Return: AL = status
  5260.         00h successful
  5261.         01h interrupt vector not used by network executive
  5262.         02h invalid subfunction
  5263. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  5264.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  5265. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  5266. --------N-7F08--CL02-------------------------
  5267. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  5268.     AH = 08h
  5269.     CL = 02h
  5270.     DX = timeout in seconds
  5271. Return: AL = status
  5272.         00h successful
  5273.         02h invalid subfunction
  5274. --------T-7F09-------------------------------
  5275. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  5276.     AH = 09h
  5277.     AL = priority (0-7)
  5278. Note:    the installation check consists of ensuring that the interrupt vector
  5279.       is not pointing at segment 0000h, then checking whether the byte
  5280.       at offset 0000h in the interrupt handler's segment is E9h
  5281. Index:    installation check;MultiLink Advanced
  5282. --------N-7F09-------------------------------
  5283. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  5284.     AH = 09h
  5285.     CL = function
  5286.         00h enable checking of RTNX.MUD file
  5287.         01h disable RTNX.MUD checking
  5288. --------N-7F09--CL02-------------------------
  5289. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  5290.     AH = 09h
  5291.     CL = 02h
  5292. Note:    in dedicated mode, the host will only poll for I/O requests from the
  5293.       slave processors, and not provide workstation services
  5294. --------N-7F09--CL03-------------------------
  5295. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  5296.     AH = 09h
  5297.     CL = 03h
  5298.     AL = default interrupt number (67h,7Fh,etc)
  5299. Return: CL = actual interrupt which handles specified interrupt's calls
  5300. SeeAlso: AH=08h
  5301. --------N-7F0A--CL00-------------------------
  5302. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  5303.     AH = 0Ah
  5304.     CL = 00h
  5305.     ES:DI -> buffer for system flags (see below)
  5306. Return: ES:DI buffer filled
  5307. Notes:    on a slave, only the NX_Busy flag is returned
  5308.     all three flags are at fixed positions, so this function only needs to
  5309.       be called once
  5310.     an interrupt handler should only perform DOS or device accesses when
  5311.       all three flags are 00h
  5312.  
  5313. Format of system flags:
  5314. Offset    Size    Description
  5315.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  5316.  04h    DWORD    pointer to device driver busy flag
  5317.  08h    DWORD    pointer to InTimer flag
  5318. --------N-7F0B--CL02-------------------------
  5319. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  5320.     AH = 0Bh
  5321.     CL = 02h
  5322.     AL = slave ID number
  5323.     CH = DOS to activate
  5324.         00h graphics DOS
  5325.         01h character DOS
  5326. Return: AL = status
  5327.         00h successful
  5328.         01h nothing done, proper DOS type already loaded
  5329. --------N-7F10--CL00-------------------------
  5330. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  5331.     AH = 10h
  5332.     CL = 00h
  5333.     AL = channel number
  5334.     DX:DI -> channel buffer
  5335. Return: AL = status (00h-03h,0Dh) (see below)
  5336. Note:    may not be invoked from within a hardware interrupt handler
  5337. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  5338.  
  5339. Values for status:
  5340.  00h    successful
  5341.  01h    busy
  5342.  02h    channel range error (not 00h-3Fh)
  5343.  03h    invalid subfunction
  5344.  0Ah    channel not open
  5345.  0Ch    channel already locked
  5346.  0Dh    unable to open
  5347. --------N-7F10--CL01-------------------------
  5348. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  5349.     AH = 10h
  5350.     CL = 01h
  5351.     AL = channel number
  5352. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  5353. Note:    may not be invoked from within a hardware interrupt handler
  5354. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  5355. --------N-7F10--CL02-------------------------
  5356. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  5357.     AH = 10h
  5358.     CL = 02h
  5359.     AL = channel number
  5360. Return: AL = status (00h-03h,0Ah,0Ch) (see AH=10h/CL=00h)
  5361. Note:    may not be invoked from within a hardware interrupt handler
  5362. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  5363. --------N-7F10--CL03-------------------------
  5364. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  5365.     AH = 10h
  5366.     CL = 03h
  5367.     AL = channel number
  5368. Return: AL = status (00h-03h,0Ah) (see AH=10h/CL=00h)
  5369. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  5370.       locked by receipt of a datagram
  5371.     may not be invoked from within a hardware interrupt handler
  5372. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  5373. --------N-7F10--CL04-------------------------
  5374. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  5375.     AH = 10h
  5376.     CL = 04h
  5377.     AL = channel number
  5378. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5379. Notes:    unlocks buffer after received datagram has been processed
  5380.     may not be invoked from within a hardware interrupt handler
  5381. SeeAlso: AH=10h/CL=00h
  5382. --------N-7F10--CL05-------------------------
  5383. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  5384.     AH = 10h
  5385.     CL = 05h
  5386. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5387. Notes:    clears all pending datagrams and clears buffer pointers before closing
  5388.       the channels
  5389.     may not be invoked from within a hardware interrupt handler
  5390. SeeAlso: AH=10h/CL=01h
  5391. --------N-7F10--CL06-------------------------
  5392. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  5393.     AH = 10h
  5394.     CL = 06h
  5395. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5396. Note:    may not be invoked from within a hardware interrupt handler
  5397. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  5398. --------N-7F10--CL07-------------------------
  5399. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  5400.     AH = 10h
  5401.     CL = 07h
  5402. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5403. Notes:    unlocks all locked channels which have no pending datagrams
  5404.     may not be invoked from within a hardware interrupt handler
  5405. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  5406. --------N-7F10--CL08-------------------------
  5407. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  5408.     AH = 10h
  5409.     CL = 08h
  5410.     DX = maximum channel number to lock
  5411. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5412. Notes:    locks channels numbered 00h through the value in DX
  5413.     may not be invoked from within a hardware interrupt handler
  5414. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  5415. --------N-7F10--CL09-------------------------
  5416. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  5417.     AH = 10h
  5418.     CL = 09h
  5419.     DX = maximum channel number to unlock
  5420. Return: AL = status (00h-03h) (see AH=10h/CL=00h)
  5421. Notes:    unlocks channels numbered 00h through the value in DX
  5422.     may not be invoked from within a hardware interrupt handler
  5423. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  5424. --------N-7F11-------------------------------
  5425. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  5426.     AH = 11h
  5427.     DX:SI -> request block (see below)
  5428. Return: AL = status (see below)
  5429. Note:    if wildcard channel FFh used, actual channel number will be filled in
  5430. SeeAlso: AH=12h
  5431.  
  5432. Values for status:
  5433.  00h    successful
  5434.  01h    busy
  5435.  02h    channel range error (not 00h-3Fh)
  5436.  03h    invalid subfunction
  5437.  0Ah    packet too large (or <2 bytes if NTNX)
  5438.  0Bh    can't send packet to itself
  5439.  0Ch    invalid number of destinations
  5440.  0Dh    destination channel number out of range
  5441.  0Eh    destination user is busy
  5442.  0Fh    destination user has locked channel
  5443.  10h    channel not open
  5444.  11h    no datagram server on destination (NTNX)
  5445.  
  5446. Format of request block:
  5447. Offset    Size    Description
  5448.  00h    DWORD    pointer to packet to send
  5449.  04h    WORD    packet size in bytes (1-4096)
  5450.  06h    BYTE    number of destinations for packet (max 1Fh)
  5451.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  5452.  26h 31 BYTEs    destination channels (FFh = first available channel)
  5453.  45h 31 BYTEs    return destination statuses
  5454. --------N-7F12-------------------------------
  5455. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  5456.     AH = 12h
  5457.     AL = channel number being acknowledged
  5458.     DI:DX = 32-bit status to return to sender
  5459. Return: AL = status (see below)
  5460. Note:    also unlocks the channel, allowing the next datagram to be received
  5461. SeeAlso: AH=11h,AH=15h/CL=04h
  5462.  
  5463. Values for status:
  5464.  00h    successful
  5465.  01h    busy
  5466.  02h    channel range error (not 00h-3Fh)
  5467.  03h    invalid subfunction
  5468.  0Ah    channel not open
  5469.  0Bh    no message in channel
  5470.  0Ch    destination slave busy--retry (NTNX)
  5471.  0Dh    destination user not active
  5472.  0Eh    destination slave not active (NTNX)
  5473.  0Fh    destination disabled datagram service
  5474. --------V-7F1234-----------------------------
  5475. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  5476.     AX = 1234h
  5477. SeeAlso: AX=4321h
  5478. --------N-7F13--CL00-------------------------
  5479. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  5480.     AH = 13h
  5481.     CL = 00h
  5482. Note:    clears all pending datagrams and removes all channels opened in NTNX
  5483.       compatibility mode
  5484. --------N-7F14--CL00-------------------------
  5485. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  5486.     AH = 14h
  5487.     CL = 00h
  5488.     DX:DI -> application FAR receive service routine (see below)
  5489. Return: AL = status (00h-03h) (see AH=12h)
  5490. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5491.  
  5492. Service routine called with:
  5493.     DH = sender ID
  5494.     DL = channel with datagram
  5495.     interrupts disabled
  5496. Return: AL = response code
  5497.         00h leave buffer locked, set channel status, and repeat call later
  5498.         01h release channel buffer
  5499.         02h change buffer pointer to DX:DI
  5500.     AH,CX,DX,DI,SI may be destroyed
  5501. --------N-7F14--CL01-------------------------
  5502. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  5503.     AH = 14h
  5504.     CL = 01h
  5505.     DX:DI -> application FAR acknowledge service routine (see below)
  5506. Return: AL = status (00h-03h) (see AH=12h)
  5507. Note:    the service routine will be called as soon as an acknowledgment arrives
  5508. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  5509.  
  5510. Service routine called with:
  5511.     DS:SI -> acknowledge structure (see AH=15h/CL=04h)
  5512. Return: AL = response code
  5513.         00h application busy, network executive should call again later
  5514.         01h acknowledge accepted
  5515.     AH,DX,SI may be destroyed
  5516. --------N-7F14--CL02-------------------------
  5517. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  5518.     AH = 14h
  5519.     CL = 02h
  5520.     AL = channel number
  5521.     DX:DI -> receive buffer
  5522. Return: AL = status (00h-03h) (see AH=12h)
  5523. Note:    may be called from within a receive ISR or when a datagram is pending
  5524. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  5525. --------N-7F14--CL03-------------------------
  5526. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  5527.     AH = 14h
  5528.     CL = 03h
  5529. Return: DX:DI -> current receive ISR
  5530. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  5531. --------N-7F14--CL04-------------------------
  5532. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  5533.     AH = 14h
  5534.     CL = 04h
  5535. Return: DX:DI -> current acknowledge ISR
  5536. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5537. --------N-7F14--CL05-------------------------
  5538. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  5539.     AH = 14h
  5540.     CL = 05h
  5541.     DX:DI -> buffer for busy structure (see below)
  5542. Return: DX:DI buffer filled
  5543.  
  5544. Format of busy structure:
  5545. Offset    Size    Description
  5546.  00h    DWORD    pointer to busy flag byte
  5547.  04h    WORD    fixed port address (FF00h)
  5548. --------N-7F15--CL00-------------------------
  5549. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  5550.     AH = 15h
  5551.     CL = 00h
  5552.     AL = channel number
  5553.     DX:DI -> status structure (see below)
  5554. Return: AL = status (00h-03h) (see AH=12h)
  5555. SeeAlso: AH=15h/CL=01h
  5556.  
  5557. Format of status structure:
  5558. Offset    Size    Description
  5559.  00h    BYTE    channel status
  5560.         bit 0: channel open
  5561.         bit 1: channel buffer contains received data
  5562.         bit 7: channel locked
  5563.  01h    BYTE    sender ID
  5564. --------N-7F15--CL01-------------------------
  5565. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  5566.     AH = 15h
  5567.     CL = 01h
  5568.     DX:DI -> full-channel structure
  5569. Return: AL = status
  5570.         00h successful
  5571.         01h busy
  5572.         0Ah no datagrams available
  5573. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  5574.       and NTNX return the oldest datagram
  5575. SeeAlso: AH=15h/CL=00h
  5576.  
  5577. Format of full-channel structure:
  5578. Offset    Size    Description
  5579.  00h    BYTE    number of channel with oldest datagram
  5580.  01h    BYTE    sender ID
  5581. --------N-7F15--CL02-------------------------
  5582. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  5583.     AH = 15h
  5584.     CL = 02h
  5585. Return: AH = number of channels available (40h for MW386)
  5586. Note:    the application may always assume at least 32 channels available
  5587. SeeAlso: AH=15h/CL=03h
  5588. --------N-7F15--CL03-------------------------
  5589. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  5590.     AH = 15h
  5591.     CL = 03h
  5592.     DX:DI -> WORD for return value
  5593. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  5594. SeeAlso: AH=15h/CL=02h
  5595. --------N-7F15--CL04-------------------------
  5596. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  5597.     AH = 15h
  5598.     CL = 04h
  5599.     DX:DI -> status structure (see below)
  5600. Return: AL = status
  5601.         00h successful
  5602.         DX:DI structure filled
  5603.         01h busy
  5604.         0Ah no acknowledgement has arrived
  5605. SeeAlso: AH=12h,AH=14h/CL=01h
  5606.  
  5607. Format of status structure:
  5608. Offset    Size    Description
  5609.  00h    BYTE    sender ID
  5610.  01h    BYTE    channel number
  5611.  02h  4 BYTEs    receiver status (see AH=12h)
  5612. --------N-7F16-------------------------------
  5613. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  5614.     AH = 16h
  5615.     DX:SI -> transfer structure (see below)
  5616. Return: AL = status
  5617.         00h successful
  5618.         0Ah source or destination out of range
  5619.         0Bh transfer kernal busy--try again
  5620. Notes:    this call transfers memory contents directly between users; both source
  5621.       and destination user IDs may differ from the caller's ID
  5622.     no segment wrap is allowed
  5623.  
  5624. Format of transfer structure:
  5625. Offset    Size    Description
  5626.  00h    WORD    bytes to transfer
  5627.  02h    BYTE    source ID
  5628.         FEh = caller
  5629.  03h    DWORD    source address
  5630.  07h    BYTE    destination ID
  5631.         FFh = all slaves except caller
  5632.         FEh = caller
  5633.  08h    DWORD    destination address
  5634. --------N-7F21-------------------------------
  5635. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  5636.     AH = 21h
  5637.     AL = sender's user ID
  5638.     DS:DX -> control packet (see below)
  5639. Note:    messages or commands are ignored if disabled by the destination user
  5640. SeeAlso: AH=22h
  5641.  
  5642. Format of control packet:
  5643. Offset    Size    Description
  5644.  00h    BYTE    packet type
  5645.         00h message
  5646.         01h NTNX command
  5647.         02h MW386 command
  5648.  01h    BYTE    destination user ID or 'A' for all users
  5649.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  5650.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  5651. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  5652. --------N-7F22-------------------------------
  5653. INT 7F - Alloy NTNX - GET MESSAGE
  5654.     AH = 22h
  5655. Return: pending messages displayed on user's screen
  5656. SeeAlso: AH=21h
  5657. --------N-7F24-------------------------------
  5658. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  5659.     AH = 24h
  5660.     CL = function
  5661.         00h attach
  5662.         01h release
  5663.     CH = drive (0=A:,1=B:,etc)
  5664. Return: AX = status
  5665.         00h successful
  5666.         01h invalid request
  5667.         02h already attached
  5668.         03h not attached
  5669.         04h lock table full
  5670. Note:    only drives on the current machine may be attached
  5671. --------N-7F24-------------------------------
  5672. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  5673.     AH = 24h
  5674.     CL = function
  5675.         02h attach host
  5676.         03h release host
  5677. Return: AX = status
  5678.         00h successful
  5679.         01h invalid request
  5680.         02h already attached
  5681.         03h not attached
  5682.         04h lock table full
  5683. Note:    the host processor may be attached in order to perform I/O via the host
  5684. --------N-7F25--CL00-------------------------
  5685. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  5686.     AH = 25h
  5687.     CL = 00h
  5688. Return: AH = version suffix letter
  5689.     CH = major version number
  5690.     CL = minor version number
  5691. SeeAlso: AH=25h/CL=01h
  5692. --------N-7F25--CL01-------------------------
  5693. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  5694.     AH = 25h
  5695.     CL = 01h
  5696. Return: CL = type
  5697.         00h RTNX
  5698.         01h ATNX
  5699.         02h NTNX
  5700.         03h BTNX
  5701.         04h MW386
  5702.         05h ANSK
  5703. SeeAlso: AH=25h/CL=00h
  5704. ----------7F2525-----------------------------
  5705. INT 7F - TIGA Communications Driver v2.05 - ???
  5706.     AX = 2525h
  5707.     BX = ???
  5708. Return: ???
  5709. SeeAlso: AX=4321h,AX=5555h
  5710. --------N-7F26--CL00-------------------------
  5711. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  5712.     AH = 26h
  5713.     CL = 00h
  5714. Return: AX = file mode bits (see below)
  5715. Note:    MW386 does not support file modes, and always returns AX=001Fh
  5716. SeeAlso: AH=26h,AH=26h/CL=06h
  5717.  
  5718. Bitfields for file mode bits:
  5719.  bit 0    directory protection enabled
  5720.  bit 1    extended open enabled
  5721.  bit 2    flush on every disk write
  5722.  bit 3    flush on every disk write in locked interval
  5723.  bit 4    flush on reads from simultaneously opened file
  5724. --------N-7F26-------------------------------
  5725. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  5726.     AH = 26h
  5727.     CL = check type to set/reset
  5728.         01h directory protection
  5729.         02h extended open
  5730.         03h flush on every disk write
  5731.         04h flush on disk write if any lock set during write
  5732.         05h flush on all reads if file written
  5733.     AL = new state (00h off, 01h on)
  5734. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  5735. --------N-7F26--CL06-------------------------
  5736. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  5737.     AH = 26h
  5738.     CL = 06h
  5739. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  5740. SeeAlso: AH=26h/CL=00h
  5741. --------N-7F30-------------------------------
  5742. INT 7F - Alloy MW386 - GET PORT INFORMATION
  5743.     AH = 30h
  5744.     CX = MW386 port number
  5745. Return: AL = FFh if port not found
  5746.        else     driver unit number
  5747.            BL = port mode
  5748.            BH = port type
  5749.            02h remote
  5750.            DH = owner's machine ID
  5751.            DL = owner's user ID
  5752. SeeAlso: INT 17/AH=8Bh
  5753. --------N-7F31-------------------------------
  5754. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  5755.     AH = 31h
  5756.     ???
  5757. Return: ???
  5758. --------N-7F37-------------------------------
  5759. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  5760.     AH = 37h
  5761. Return: ES:AX -> semaphore table
  5762. --------N-7F37-------------------------------
  5763. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  5764.     AH = 37h
  5765.     DS:DX -> ASCIZ string to display
  5766. Note:    if the string is empty, a terminal update will be forced
  5767. --------N-7F38-------------------------------
  5768. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  5769.     AH = 38h
  5770.     AL = new terminal driver number
  5771.         FFh dummy driver
  5772.         FEh current driver
  5773.         FDh load new driver
  5774.         DS:SI -> new driver
  5775. SeeAlso: AH=39h
  5776. --------N-7F39-------------------------------
  5777. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  5778.     AH = 39h
  5779.     AL = new terminal driver number
  5780.     DL = user number (FFh = caller)
  5781.     DH = machine number if DL <> FFh
  5782. Return: CF set if invalid user number
  5783.     CF clear if successful
  5784. Notes:    only available to supervisors
  5785.     the new driver number will not take effect until the user is rebooted
  5786. SeeAlso: AH=38h
  5787. --------N-7F3A-------------------------------
  5788. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  5789.     AH = 3Ah
  5790.     DL = user number (FFh = caller)
  5791.     DH = machine number
  5792. Return: CF clear if successful
  5793.         AH = terminal driver number
  5794.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  5795.         CL = parity (00h none, 01h even, 02h odd)
  5796.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5797.     CF set if invalid user number
  5798. SeeAlso: AH=3Bh
  5799. --------N-7F3B-------------------------------
  5800. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  5801.     AH = 3Bh
  5802.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  5803.     CL = parity (00h none, 01h even, 02h odd)
  5804.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5805.     DL = user number (FFh = caller)
  5806.     DH = machine number for user
  5807. Return: CF set if invalid user number
  5808. Notes:    only available to supervisors
  5809.     the new parameters will take effect immediately if the user's terminal
  5810.       has not been started, else AH=3Dh must be called to post the changes
  5811. SeeAlso: AH=3Ah,AH=3Dh
  5812. --------N-7F3C-------------------------------
  5813. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  5814.     AH = 3Ch
  5815.     AL = new state
  5816.          00h disabled, 01h enabled
  5817.     DL = user number (FFh = caller)
  5818.     DH = machine number for user
  5819. Return: CF set if invalid user number
  5820. Note:    only available to supervisors
  5821. SeeAlso: AH=3Dh
  5822. --------N-7F3D-------------------------------
  5823. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  5824.     AH = 3Dh
  5825. Note:    should be called whenever a program changes the terminal type or its
  5826.       parameters
  5827. SeeAlso: AH=3Bh
  5828. --------N-7F41-------------------------------
  5829. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  5830.     AH = 41h
  5831.     AL = user ID
  5832.     DS:DX -> ASCIZ filename
  5833. Return: AL = status
  5834.         00h successful
  5835.         01h invalid function
  5836.         02h already locked
  5837.         03h unable to lock
  5838.         04h lock table full
  5839. Note:    requests exclusive read/write access to file
  5840. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  5841. --------N-7F41-------------------------------
  5842. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  5843.     AH = 41h
  5844.     AL = user ID
  5845.     DS:DX -> ASCIZ semaphore name
  5846. Return: AL = status
  5847.         00h successful
  5848.         01h invalid function
  5849.         02h semaphore already locked
  5850.         03h unable to lock semaphore
  5851.         04h semaphore space exhausted
  5852. SeeAlso: AH=00h,AH=42h"MW386"
  5853. --------N-7F42-------------------------------
  5854. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  5855.     AH = 42h
  5856.     AL = user ID
  5857.     DS:DX -> ASCIZ filename
  5858. Return: AL = status
  5859.         00h successful
  5860.         01h invalid function
  5861.         02h already locked
  5862.         03h unable to lock
  5863.         04h lock table full
  5864. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  5865. --------N-7F42-------------------------------
  5866. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  5867.     AH = 42h
  5868.     AL = user ID
  5869.     DS:DX -> ASCIZ semaphore name
  5870. Return: AL = status
  5871.         00h successful
  5872.         01h invalid function
  5873.         03h unable to unlock semaphore
  5874. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  5875. ----------7F4321-----------------------------
  5876. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  5877.     AX = 4321h
  5878. Return: AX = 0000h if installed
  5879. Note:    INT 7F is the default, but may be overridden
  5880. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  5881. --------N-7F4E-------------------------------
  5882. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  5883.     AH = 4Eh
  5884.     AL = error mode flags
  5885.         bit 0: display critical disk errors
  5886.         bit 1: display sharing errors
  5887.     DX = 4E58h ("NX")
  5888. Return: AL = status
  5889.         00h successful
  5890. SeeAlso: AH=4Fh
  5891. --------N-7F4F-------------------------------
  5892. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  5893.     AH = 4Fh
  5894.     AL = FCB mode
  5895.         02h read/write compatibility
  5896.         42h read/write shared
  5897.     DX = 4E58h ("NX")
  5898. Return: AL = status
  5899.         00h successful
  5900. --------V-7F5555-----------------------------
  5901. INT 7F - TIGA Communications Driver v2.05 - ???
  5902.     AX = 5555h
  5903.     BX = ???
  5904. Return: ???
  5905. SeeAlso: AX=4321h
  5906. --------N-7F81-------------------------------
  5907. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  5908.     AH = 81h
  5909.     AL = user ID
  5910.     DS:DX -> ASCIZ device name
  5911. SeeAlso: AH=82h
  5912. --------N-7F82-------------------------------
  5913. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  5914.     AH = 82h
  5915.     AL = user ID
  5916.     DS:DX -> ASCIZ device name
  5917. SeeAlso: AH=81h
  5918. --------N-7FA0-------------------------------
  5919. INT 7F - Alloy MW386 - GET USER NAME
  5920.     AH = A0h
  5921.     DL = user number (FFh = caller)
  5922.     DH = machine number for user
  5923.     ES:DI -> 17-byte buffer for ASCIZ user name
  5924. Return: CF set if invalid user number
  5925. SeeAlso: AH=03h,AH=A1h
  5926. --------N-7FA1-------------------------------
  5927. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  5928.     AH = A1h
  5929. Return: AL = process number
  5930.     DL = user number
  5931.     DH = machine number
  5932. SeeAlso: AH=03h,AH=A0h,AH=A2h
  5933. --------N-7FA2-------------------------------
  5934. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  5935.     AH = A2h
  5936.     DL = user number (FFh = caller)
  5937.     DH = machine number for user
  5938. Return: CF clear if successful
  5939.         AL = privilege level
  5940.         00h supervisor
  5941.         01h high
  5942.         02h medium
  5943.         03h low
  5944.     CF set if invalid user number
  5945. SeeAlso: AH=A1h,AH=A3h
  5946. --------N-7FA3-------------------------------
  5947. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  5948.     AH = A3h
  5949.     DL = user number
  5950.     DH = machine number for user
  5951. Return: CF clear if successful
  5952.         AL = login state
  5953.         00h never logged in
  5954.         01h currently logged out
  5955.         03h currently logged in
  5956.     CF set if invalid user number or user not active
  5957. SeeAlso: AH=A2h
  5958. --------N-7FA4-------------------------------
  5959. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  5960.     AH = A4h
  5961.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  5962. Return: AL = 00h if accepted
  5963.        else     invalid password
  5964. --------N-7FA500-----------------------------
  5965. INT 7F - Alloy MW386 - GET USER STATUS
  5966.     AX = A500h
  5967.     DI = machine number and user number
  5968. Return: CF clear if successful
  5969.         BX = user flags
  5970.         bit 5: allow messages
  5971.         CL = scan code for task manager hotkey
  5972.         CH = scan code for spooler hotkey
  5973.         DL = scan code for task swapper hotkey
  5974.         DH = modifier key status
  5975.     CF set if invalid user number
  5976. SeeAlso: AX=A501h
  5977. Index:    hotkeys;Alloy MW386
  5978. --------N-7FA501-----------------------------
  5979. INT 7F - Alloy MW386 - SET USER STATUS
  5980.     AX = A501h
  5981.     BX = user flags (see above)
  5982.     CL = scan code for task manager hotkey
  5983.     CH = scan code for spooler hotkey
  5984.     DL = scan code for task swapper hotkey
  5985.     DH = modifier key status
  5986.     DI = machine number and user number
  5987. Return: CF set if invalid user number
  5988. Note:    must have supervisor privilege to set another user's status
  5989. SeeAlso: AX=A500h
  5990. Index:    hotkeys;Alloy MW386
  5991. --------V-7FABCDBX0000-----------------------
  5992. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  5993.     AX = ABCDh
  5994.     BX = 0000h
  5995. Return: AX = total number of functions available
  5996.     ES:BX -> entry point array
  5997. SeeAlso: AX=0104h,AX=0105h
  5998.  
  5999. Function numbers:
  6000.  00h    check initialization and reset
  6001.  14h    set user-defined subroutine
  6002. Notes:    each driver function takes two stack parameters using Pascal calling
  6003.       conventions: address of parameter block and address of results buffer
  6004.     all pointers are FAR pointers
  6005.     on return, AX contains the status of the call:
  6006.         AX = 0000h successful
  6007.          0001h invalid input
  6008.          0002h interface error
  6009.          0003h unable to perform function
  6010.  
  6011. Format of parameter block for function 00h:
  6012. Offset    Size    Description
  6013.  00h    WORD    0000h (function number)
  6014. Note:    this function should be called before any other device driver functions
  6015.  
  6016. Format of results buffer for function 00h:
  6017. Offset    Size    Description
  6018.  00h    WORD    touch screen status
  6019.         0000h unavailable
  6020.         0001h uncalibrated
  6021.         FFFFh available
  6022.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  6023. Notes:    the following driver parameters will have been reset to zero:
  6024.       touchdown counter, liftoff counter, position at last touch, position
  6025.       at last lift, int call mask, select on count, select off count,
  6026.       pos select on count, pos select off count.
  6027.     the following driver parameters will have been reset as listed:
  6028.       mouse emulation mode: left on
  6029.       thresholds: 46 on screen, 96 push harder, 80 push release
  6030.       x, y hysteresis: 400
  6031.       data repeat rate: 40/sec
  6032.       select mechanism: push-harder - first-touch
  6033.       coordinate origin: upper left corner
  6034.       filter frequency: medium
  6035.       data block mask: all enabled
  6036.       click lock: on
  6037. --------N-7FB0-------------------------------
  6038. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  6039.     AH = B0h
  6040.     AL = user number
  6041.     DS = code segment
  6042. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  6043.       or INT 7F locking functions
  6044. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  6045. --------N-7FB1--SF00-------------------------
  6046. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  6047.     AH = B1h subfn 00h
  6048.     AL = (bits 7-5) 000
  6049.          (bits 4-0) user ID
  6050. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  6051.       INT 7F locking functions
  6052. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  6053. --------N-7FB2--SF01-------------------------
  6054. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  6055.     AH = B2h subfn 01h
  6056.     AL = (bits 7-5) 001
  6057.          (bits 4-0) user ID
  6058. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  6059. --------N-7FB3--SF02-------------------------
  6060. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  6061.     AH = B3h subfn 02h
  6062.     AL = (bits 7-5) 010
  6063.          (bits 4-0) user ID
  6064. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  6065. --------N-7FB4-------------------------------
  6066. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  6067.     AH = B4h
  6068.     AL = user ID
  6069. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  6070. --------N-7FC3-------------------------------
  6071. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  6072.     AH = C3h
  6073.     AL = byte to write
  6074. Return: CF clear if successful
  6075.     CF set on error
  6076. SeeAlso: AH=C6h
  6077. --------N-7FC5-------------------------------
  6078. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  6079.     AH = C5h
  6080.     AL = new console mode
  6081.         00h keyboard indirect
  6082.         01h keyboard direct
  6083.         02h data handshake enforced
  6084.         03h no data handshake
  6085. Return: CF clear if successful
  6086.         AL = prior console mode
  6087.     CF set on error (caller is not remote user)
  6088. Note:    modes 2 and 3 may be used for input through the console port; no video
  6089.       output should be performed in these modes
  6090. --------N-7FC6-------------------------------
  6091. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  6092.     AH = C6h
  6093.     AL = byte to write
  6094. Return: CF clear if successful
  6095.     CF set on error (caller is not remote user)
  6096. Note:    any terminal driver data translation will be bypassed
  6097. SeeAlso: AH=C3h,AH=C7h
  6098. --------N-7FC7-------------------------------
  6099. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  6100.     AH = C7h
  6101. Return: CF clear if successful
  6102.         AL = byte read
  6103.     CF set on error (no data available or caller is not remote user)
  6104. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  6105. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  6106. --------N-7FC8-------------------------------
  6107. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  6108.     AH = C8h
  6109.     AL = maximum bytes to read
  6110.     ES:DI -> buffer for console data
  6111. Return: CF clear if successful
  6112.         CX = number of bytes read
  6113.     CF set on error (caller is not remote user)
  6114. SeeAlso: AH=C7h
  6115. --------N-7FCF-------------------------------
  6116. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  6117.     AH = CFh
  6118.     DS:DX -> ASCIZ string containing user number to be reset
  6119. SeeAlso: AH=D6h
  6120. --------N-7FD6-------------------------------
  6121. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  6122.     AH = D6h
  6123.     DS:DX -> reset packet (see below)
  6124. Return: never if succesful
  6125. Note:    all users will be shut down immediately if successful
  6126. SeeAlso: AH=CFh
  6127.  
  6128. Format of reset packet:
  6129. Offset    Size    Description
  6130.  00h    DWORD    reset code (60606060h)
  6131.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  6132. --------N-7FD7-------------------------------
  6133. INT 7F - Alloy MW386 - POST EVENT
  6134.     AH = D7h
  6135.     AL = user number (if local event)
  6136.     DX = event number
  6137. --------N-7FD8-------------------------------
  6138. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  6139.     AH = D8h
  6140. Return: CF set on error
  6141. Note:    forces all disk buffers to be written out immediately
  6142. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  6143. --------N-7FDB-------------------------------
  6144. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  6145.     AH = DBh
  6146. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  6147. --------N-7FE0-------------------------------
  6148. INT 7F - Alloy MW386 - CREATE DOS TASK
  6149.     AH = E0h
  6150.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6151.     DS:DX -> ASCIZ task name (max 16 bytes)
  6152. Return: CF clear if successful
  6153.         AL = task create ID
  6154.     CF set on error
  6155. Note:    only foreground DOS tasks can use this function
  6156. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  6157. --------N-7FE1-------------------------------
  6158. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  6159.     AH = E1h
  6160.     AL = create ID (from AH=E0h)
  6161. Return: AL = DOS process number
  6162.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6163. Note:    this function should not be called immediately after creating a new
  6164.       DOS task, since the new task is being initialized by a concurrent
  6165.       process
  6166. SeeAlso: AH=E0h,AH=E2h
  6167. --------N-7FE2-------------------------------
  6168. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  6169.     AH = E2h
  6170.     AL = DOS process number (from AH=E1h)
  6171. Return: CF set on error (invalid process number or caller not foreground task)
  6172. Notes:    specified task becomes the foreground task and current task is placed
  6173.       in the background
  6174.     may only be called by a foreground task
  6175. SeeAlso: AH=E0h,AH=E1h
  6176. --------N-7FE3-------------------------------
  6177. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  6178.     AH = E3h
  6179. ---v1.x---
  6180.     AL = user number
  6181. ---v2+---
  6182.     BH = user number
  6183.     BL = task number
  6184. ---
  6185.     DS:DX -> ASCIZ task name
  6186. Return: CF set on error (invalid process number)
  6187. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  6188. --------N-7FE4-------------------------------
  6189. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  6190.     AH = E4h
  6191. ---v1.x---
  6192.     AL = user number
  6193. ---v2+---
  6194.     BH = user number
  6195.     BL = task number
  6196. ---
  6197.     ES:DI -> buffer for task name
  6198. Return: CF clear if successful
  6199.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6200.         DX = task flags
  6201.         bit 7: MS-DOS process
  6202.         ES:DI buffer filled
  6203.     CF set on error (invalid process number)
  6204. SeeAlso: AH=E3h,AH=E5h
  6205. --------N-7FE5-------------------------------
  6206. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  6207.     AH = E5h
  6208.     DS:DX -> ASCIZ task name
  6209.     BH = user number
  6210. Return: CF clear if successful
  6211.         AL = DOS process number
  6212.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  6213.     CF set on error (no match for name)
  6214. SeeAlso: AH=E3h,AH=E4h
  6215. --------N-7FE6-------------------------------
  6216. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  6217.     AH = E6h
  6218. Return: AX = number of processes available to current user
  6219. SeeAlso: AH=E0h
  6220. --------N-7FE7-------------------------------
  6221. INT 7F - Alloy MW386 - REMOVE DOS TASK
  6222.     AH = E7h
  6223.     AL = DOS process number
  6224. Return: CF set on error (invalid process number or first process)
  6225. Note:    can only be called by a foreground task
  6226. SeeAlso: AH=E0h
  6227. --------N-7FE8-------------------------------
  6228. INT 7F - Alloy MW386 - DOS TASK DELAY
  6229.     AH = E8h
  6230.     CX = delay time in milliseconds
  6231. Note:    a delay of 0 may be used to surrender the current time slice
  6232. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  6233. SeeAlso: INT 2F/AX=1680h
  6234. --------N-7FF0-------------------------------
  6235. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  6236.     AH = F0h
  6237.     AL = group number
  6238.     DS:DX -> ASCIZ directory name
  6239. Return: CF clear if successful
  6240.         AX = status
  6241.         0002h directory not found
  6242.         0003h directory not found
  6243.         0005h directory in use, cannot be restricted
  6244.         02xxh restricted to group xxh
  6245.     CF set on error
  6246. Note:    the restriction on the directory may be removed by calling this
  6247.       function with group 0, then using AH=F1h to assign the directory to
  6248.       group 0
  6249. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  6250. --------N-7FF1-------------------------------
  6251. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  6252.     AH = F1h
  6253.     AL = group number
  6254.     DS:DX -> ASCIZ directory name
  6255. Notes:    performs permanent assignment to a group; no immediate action is taken
  6256.       unless the directory has been restricted with AH=F0h
  6257.     may be used to restrict a nonexistent directory
  6258. SeeAlso: AH=F0h
  6259. --------N-7FF2-------------------------------
  6260. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  6261.     AH = F2h
  6262.     CX = entry number
  6263.     ES:DI -> 64-byte buffer
  6264. Return: CF clear if successful
  6265.         buffer filled with 63-byte directory info and 1-byte group number
  6266.     CF set on error (invalid entry)
  6267. SeeAlso: AH=F0h,AH=F3h
  6268. --------N-7FF3-------------------------------
  6269. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  6270.     AH = F3h
  6271.     AL = group number
  6272.     CX = entry number
  6273.     ES:DI -> 64-byte buffer
  6274. Return: CF clear if successful
  6275.         CX = next entry number
  6276.         buffer filled with 63-byte directory info and 1-byte group number
  6277.     CF set on error (no more matching entries)
  6278. Note:    like AH=F2h, but only returns directories belonging to the specified
  6279.       group
  6280. SeeAlso: AH=F2h
  6281. --------N-7FF8-------------------------------
  6282. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  6283.     AH = F8h
  6284.     AL = group number
  6285.     DL = user number
  6286.     DH = machine number (currently 00h)
  6287. Return: CF clear if successful
  6288.     CF set on error (user already in maximum number of groups)
  6289. Note:    each user is allowed eight group assignments
  6290. SeeAlso: AH=F9h,AH=FAh
  6291. --------N-7FF9-------------------------------
  6292. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  6293.     AH = F9h
  6294.     AL = group number
  6295.     DL = user number
  6296.     DH = machine number (currently 00h)
  6297. Return: CF set if failed
  6298. SeeAlso: AH=F8h,AH=FAh
  6299. --------N-7FFA-------------------------------
  6300. INT 7F - Alloy MW386 - GET USER GROUP LIST
  6301.     AH = FAh
  6302.     DL = user number
  6303.     DH = machine number (currently 00h)
  6304.     ES:DI -> 16-byte buffer for group list
  6305. Return: CX = number of groups
  6306.     ES:DI buffer filled with group numbers
  6307. SeeAlso: AH=F8h,AH=F9h
  6308. --------N-7FFB-------------------------------
  6309. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  6310.     AH = FBh
  6311.     CL = group number
  6312.     ES:DI -> ASCIZ group name (max 17 bytes)
  6313. SeeAlso: AH=FCh
  6314. --------N-7FFC-------------------------------
  6315. INT 7F - Alloy MW386 - GET GROUP NAME
  6316.     AH = FCh
  6317.     CL = group number
  6318.     ES:DI -> 17-byte buffer for ASCIZ name
  6319. Return: ES:DI buffer filled
  6320. Note:    if the group has not been named, "(unnamed)" is returned
  6321. SeeAlso: AH=FBh
  6322. ----------80---------------------------------
  6323. INT 80 - Q-PRO4 - ???
  6324. --------r-80---------------------------------
  6325. INT 80 - reserved for BASIC
  6326. Note:    this vector and INT 81 through INT ED are modified but not restored by
  6327.       Direct Access v4.0, and may be left dangling by other programs
  6328.       written with the same version of compiled BASIC
  6329. SeeAlso: INT 81"BASIC"
  6330. --------s-80----BX0000-----------------------
  6331. INT 80 - SoundBlaster SBFM driver - GET VERSION
  6332.     BX = 0000h
  6333. Return: ???
  6334. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  6335. SeeAlso: BX=0008h,INT 2F/AX=FBFBh
  6336. --------s-80----BX0001-----------------------
  6337. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  6338.     BX = 0001h
  6339.     DX:AX -> music status byte
  6340. SeeAlso: BX=0000h,BX=0002h,BX=0003h
  6341. --------s-80----BX0002-----------------------
  6342. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  6343.     BX = 0002h
  6344.     CX = number of instruments
  6345.     DX:AX -> instrument table
  6346. SeeAlso: BX=0000h,BX=0001h,BX=0005h
  6347. --------s-80----BX0003-----------------------
  6348. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  6349.     BX = 0003h
  6350.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  6351.         FFFFh to restore to 18.2 Hz
  6352. SeeAlso: BX=0000h,BX=0001h,BX=0004h
  6353. --------s-80----BX0004-----------------------
  6354. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  6355.     BX = 0004h
  6356.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  6357. Note:    default frequency is 96 Hz
  6358. SeeAlso: BX=0000h,BX=0003h
  6359. --------s-80----BX0005-----------------------
  6360. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  6361.     BX = 0005h
  6362.     AX = semi-tone offset
  6363. SeeAlso: BX=0000h,BX=0002h,BX=0006h
  6364. --------s-80----BX0006-----------------------
  6365. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  6366.     BX = 0006h
  6367.     DX:AX -> music block
  6368. Return: AX = status
  6369.         0000h successful
  6370.         0001h music already active
  6371. SeeAlso: BX=0000h,BX=0007h,BX=000Ah,INT 1A/AX=FF04h
  6372. --------s-80----BX0007-----------------------
  6373. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  6374.     BX = 0007h
  6375. Return: AX = status
  6376.         0000h successful
  6377.         0001h music not active
  6378. SeeAlso: BX=0000h,BX=0006h,BX=0009h,INT 1A/AX=FF05h
  6379. --------s-80----BX0008-----------------------
  6380. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  6381.     BX = 0008h
  6382. Return: AX = status
  6383.         0000h successful
  6384.         0001h music is active
  6385. SeeAlso: BX=0000h
  6386. --------s-80----BX0009-----------------------
  6387. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  6388.     BX = 0009h
  6389. Return: AX = status
  6390.         0000h successful
  6391.         0001h no music active
  6392. SeeAlso: BX=0000h,BX=0007h,BX=000Ah,INT 1A/AX=FF01h
  6393. --------s-80----BX000A-----------------------
  6394. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  6395.     BX = 000Ah
  6396. Return: AX = status
  6397.         0000h successful
  6398.         0001h no music paused
  6399. SeeAlso: BX=0000h,BX=0006h,BX=0009h
  6400. --------s-80----BX000B-----------------------
  6401. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  6402.     BX = 000Bh
  6403.     DX:AX -> trap routine
  6404. SeeAlso: BX=0000h
  6405. --------N-8001-------------------------------
  6406. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  6407.     AH = 01h
  6408. Return: AX = 0000h
  6409.     CX = FFFFh
  6410.     DX = FFFFh
  6411. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  6412.     all buffer pointers are reset back to 0
  6413. --------N-8002-------------------------------
  6414. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  6415.     AH = 02h
  6416.     BX = extra bytes to allocate per packet
  6417. Return: AX = segment address of 10K buffer (for receives???)
  6418.     BX = segment address of 2K buffer (for sends???)
  6419. SeeAlso: AH=05h
  6420. --------N-8003-------------------------------
  6421. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  6422.     AH = 03h
  6423. Return: CX:DX -> receive call address
  6424. Note:    the returned address can be used in the packet driver calls since it
  6425.       will be a valid address in all DOS boxes
  6426. SeeAlso: AH=06h
  6427. --------N-8004-------------------------------
  6428. INT 80 - QPC Software PKTINT.COM - ENABLE???
  6429.     AH = 04h
  6430.     BX = ???
  6431. Return: ???
  6432. SeeAlso: AH=01h
  6433. --------N-8005-------------------------------
  6434. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  6435.     AH = 05h
  6436. Return: AX = amount of buffer currently in use
  6437.     BX = current offset in buffer
  6438.     CX = number of times receive has been called
  6439. SeeAlso: AH=02h
  6440. --------N-8006-------------------------------
  6441. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  6442.     AH = 06h
  6443. Return: BX = next packet offset
  6444.     CX = number of bytes still buffered
  6445.     DX = size of packet released back into buffer pool
  6446. SeeAlso: AH=03h
  6447. --------r-81---------------------------------
  6448. INT 81 - reserved for BASIC
  6449. Note:    this vector is modified but not restored by Direct Access v4.0, and
  6450.       may be left dangling by other programs written with the same version
  6451.       of compiled BASIC
  6452. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  6453. --------N-81---------------------------------
  6454. INT 81 - IBM TOKEN RING ADAPTER - ???
  6455. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  6456. --------r-82---------------------------------
  6457. INT 82 - reserved for BASIC
  6458. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  6459. --------N-82---------------------------------
  6460. INT 82 - IBM TOKEN RING ADAPTER - ???
  6461.     AH = function
  6462.         00h display message???
  6463.         DS:BX -> string
  6464.     ???
  6465. Return: ???
  6466. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6467. --------r-83---------------------------------
  6468. INT 83 - reserved for BASIC
  6469. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  6470. --------r-84---------------------------------
  6471. INT 84 - reserved for BASIC
  6472. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  6473. --------r-85---------------------------------
  6474. INT 85 - reserved for BASIC
  6475. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  6476.       v4.0, and may be left dangling by other programs written with the
  6477.       same version of compiled BASIC
  6478. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  6479. --------N-86---------------------------------
  6480. INT 86 - NetBIOS - ORIGINAL INT 18
  6481. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  6482. SeeAlso: INT 18
  6483. --------r-86---------------------------------
  6484. INT 86 - IBM ROM BASIC - used while in interpreter
  6485. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6486.     BASIC.COM/BASICA.COM do not restore vector on termination
  6487. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  6488. --------r-86---------------------------------
  6489. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  6490. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  6491. --------r-87---------------------------------
  6492. INT 87 - IBM ROM BASIC - used while in interpreter
  6493. Notes:    called by ROM BASIC
  6494.     BASIC.COM/BASICA.COM do not restore vector on termination
  6495. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  6496. --------r-87---------------------------------
  6497. INT 87 - APL*PLUS/PC - ???
  6498. SeeAlso: INT 86"APL",INT 88/AL=00h
  6499. --------v-87---------------------------------
  6500. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  6501. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  6502.       following
  6503. SeeAlso: INT 8B"VIRUS"
  6504. --------r-88---------------------------------
  6505. INT 88 - IBM ROM BASIC - used while in interpreter
  6506. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6507.     BASIC.COM/BASICA.COM do not restore vector on termination
  6508. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  6509. --------r-88--00-----------------------------
  6510. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  6511.     AL = 00h
  6512.     BX = STPTR of the variable to be assigned
  6513.     ES:SI -> model of type, rank, and shape (see below)
  6514. Return: ES:DI -> first data byte of object
  6515.     DX:CX = number of elements in the object
  6516. SeeAlso: INT C8"APL"
  6517.  
  6518. Format of shape model:
  6519. Offset    Size    Description
  6520.  00h    BYTE    type
  6521.         01h character (2-byte dimension sizes)
  6522.         02h integer (2-byte dimension sizes)
  6523.         08h floating point (2-byte dimension sizes)
  6524.         11h character (4-byte dimension sizes)
  6525.         12h integer (4-byte dimension sizes)
  6526.         18h floating point (4-byte dimension sizes)
  6527.  01h    BYTE    rank
  6528.  02h    WORD/DWORD first dimension of shape
  6529.  N    WORD/DWORD second dimension of shape
  6530.     ...
  6531. --------r-88--01-----------------------------
  6532. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6533.     AL = 01h
  6534.     AH = rank
  6535.     BX = STPTR of the variable to be assigned
  6536.     CX = first dimension (if any)
  6537.     DX = second dimension (if any)
  6538. Return: ES:DI -> object
  6539.     CX = number of elements in the object
  6540. Note:    each dimension must be 32767 or smaller
  6541. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  6542. --------r-88--02-----------------------------
  6543. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6544.     AL = 02h
  6545.     AH = rank
  6546.     BX = STPTR of the variable to be assigned
  6547.     CX = first dimension (if any)
  6548.     DX = second dimension (if any)
  6549. Return: ES:DI -> object
  6550.     CX = number of elements in the object
  6551. Note:    each dimension must be 32767 or smaller
  6552. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  6553. --------r-88--08-----------------------------
  6554. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  6555.     AL = 08h
  6556.     AH = rank
  6557.     BX = STPTR of the variable to be assigned
  6558.     CX = first dimension (if any)
  6559.     DX = second dimension (if any)
  6560. Return: ES:DI -> object
  6561.     CX = number of elements in the object
  6562. Note:    each dimension must be 32767 or smaller
  6563. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  6564. --------r-88--F5-----------------------------
  6565. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  6566.     AL = F5h
  6567.     BX = STPTR of object
  6568. SeeAlso: INT C8"APL"
  6569. --------r-88--F6-----------------------------
  6570. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  6571.     AL = F6h
  6572.     BX = STPTR of object
  6573. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  6574. --------r-88--F7-----------------------------
  6575. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  6576.     AL = F7h
  6577.     BX = STPTR of object
  6578. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  6579. --------r-88--F8-----------------------------
  6580. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  6581.     AL = F8h
  6582.     BX = STPTR of object
  6583. Return: BX = name's status
  6584.         0000h eligible
  6585.         0001h not eligible
  6586. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  6587. --------r-88--F9-----------------------------
  6588. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6589.     AL = F9h
  6590.     ES:SI -> name
  6591.     CX = length of name
  6592. Return: CF set if name ill-formed or already in use
  6593.         BX = STPTR if already in symbol table
  6594.     CF clear if name is available for use
  6595.         BX = 0000h
  6596. Note:    does not force the name into the workspace
  6597. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  6598. --------r-88--FC-----------------------------
  6599. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  6600.     AL = FCh
  6601.     BX = amount of memory needed (paragraphs)
  6602. Return: CF clear if memory available
  6603.     CF set if a workspace compaction is required
  6604. SeeAlso: AL=FDh,INT C8"APL"
  6605. --------r-88--FD-----------------------------
  6606. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  6607.     AL = FDh
  6608. Return: BX = number of paragraphs available in workspace
  6609. SeeAlso: AL=FCh,INT C8"APL"
  6610. --------r-88--FE-----------------------------
  6611. INT 88 - APL*PLUS/PC - CREATE NAME
  6612.     AL = FEh
  6613.     ES:SI -> name
  6614.     CX = length of name
  6615. Return: BX = STPTR of name
  6616.     DX = interpreter's data segment
  6617. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  6618. --------r-88--FF-----------------------------
  6619. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6620.     AL = FFh
  6621.     ES:SI -> name
  6622.     CX = length of name
  6623. Return: CF set if name ill-formed or already in use
  6624.         BX = STPTR if already in symbol table
  6625.     CF clear if name is available for use
  6626.         BX = 0000h
  6627. Note:    forces the name into the workspace and makes it immune from outswapping
  6628. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  6629. --------r-89---------------------------------
  6630. INT 89 - IBM ROM BASIC - used while in interpreter
  6631. Notes:    called by ROM BASIC
  6632.     BASIC.COM/BASICA.COM do not restore vector on termination
  6633. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  6634. --------r-8A---------------------------------
  6635. INT 8A - IBM ROM BASIC - used while in interpreter
  6636. Notes:    called by ROM BASIC
  6637.     BASIC.COM/BASICA.COM do not restore vector on termination
  6638. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  6639. --------r-8A---------------------------------
  6640. INT 8A - APL*PLUS/PC - PRINT SCREEN
  6641. Note:    same as INT 05
  6642. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  6643. --------r-8B---------------------------------
  6644. INT 8B - IBM ROM BASIC - used while in interpreter
  6645. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6646.     BASIC.COM/BASICA.COM do not restore vector on termination
  6647. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  6648. --------r-8B---------------------------------
  6649. INT 8B - APL*PLUS/PC - BEEP
  6650. Note:    same as printing a ^G via INT 21/AH=02h
  6651. SeeAlso: INT 21/AH=02h,INT CB"APL"
  6652. --------v-8B---------------------------------
  6653. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  6654. Note:    if the ZeroHunt virus is resident, this vector will contain either
  6655.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  6656. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  6657. --------r-8C---------------------------------
  6658. INT 8C - IBM ROM BASIC - used while in interpreter
  6659. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6660.     BASIC.COM/BASICA.COM do not restore vector on termination
  6661. --------r-8C---------------------------------
  6662. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  6663.     AX = flag
  6664.         0000h do not save display attributes
  6665.         0001h save attributes
  6666. SeeAlso: INT CC"APL"
  6667. --------r-8D---------------------------------
  6668. INT 8D - IBM ROM BASIC - used while in interpreter
  6669. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6670.     BASIC.COM/BASICA.COM do not restore vector on termination
  6671. --------r-8E---------------------------------
  6672. INT 8E - IBM ROM BASIC - used while in interpreter
  6673. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6674.     BASIC.COM/BASICA.COM do not restore vector on termination
  6675. --------r-8F---------------------------------
  6676. INT 8F - IBM ROM BASIC - used while in interpreter
  6677. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6678.     BASIC.COM/BASICA.COM do not restore vector on termination
  6679. --------r-90---------------------------------
  6680. INT 90 - IBM ROM BASIC - used while in interpreter
  6681. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6682.     BASIC.COM/BASICA.COM do not restore vector on termination
  6683. --------r-90---------------------------------
  6684. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  6685. --------r-91---------------------------------
  6686. INT 91 - IBM ROM BASIC - used while in interpreter
  6687. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6688.     BASIC.COM/BASICA.COM do not restore vector on termination
  6689. --------N-91---------------------------------
  6690. INT 91 - IBM TOKEN RING ADAPTER - ???
  6691. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  6692. --------r-92---------------------------------
  6693. INT 92 - IBM ROM BASIC - used while in interpreter
  6694. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6695.     BASIC.COM/BASICA.COM do not restore vector on termination
  6696. --------N-92---------------------------------
  6697. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  6698.     BX:DX -> control block
  6699. SeeAlso: INT 68"Sangoma"
  6700. --------e-92E1-------------------------------
  6701. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  6702.     AH = E1h
  6703.     AL = function
  6704.     BX = stack count (number of words to push)
  6705.     CX:DX -> stack data (in word-reversed order ready to push)
  6706. Return: AX = status (see below)
  6707. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  6708.  
  6709. Values for status:
  6710.  0001h    success
  6711.  FF97h    "ERS_NOT_AVAILABLE"
  6712.  FF99h    "ERS_TOO_MANY_NAMES"
  6713.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  6714.  FFE3h    "ERS_NAME_NOT_FOUND"
  6715.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  6716.  FFFFh    "ERS_NO_SUCH_FILE"
  6717. --------e-92E100-----------------------------
  6718. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  6719.     AX = E100h
  6720.     BX = size of parameter block in words (000Ah)
  6721.     CX:DX -> parameter block (see below)
  6722. Return: AX = 0001h success
  6723. Desc:    this function is used to initialize the dispatcher
  6724. SeeAlso: AX=E101h,AX=E103h
  6725.  
  6726. Format of parameter block:
  6727. Offset    Size    Description
  6728.  00h    WORD    segment of ???
  6729.  02h    WORD    offset of ???
  6730.  04h    WORD    high part of long ???
  6731.  06h    WORD    low part of long ???
  6732.  08h    WORD    high part of long ???
  6733.  0Ah    WORD    low part of long ???
  6734.  0Ch    WORD    high part of long ???
  6735.  0Eh    WORD    low part of long ???
  6736.  10h    WORD    high part of long ???
  6737.  12h    WORD    low part of long ???
  6738. --------e-92E101BX0000-----------------------
  6739. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  6740.     AX = E101h
  6741.     BX = 0000h
  6742.     CX:DX ignored
  6743. Return: AX = 0001h success
  6744. SeeAlso: AX=E100h,AX=E180h
  6745. --------e-92E102BX0000-----------------------
  6746. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  6747.     AX = E102h
  6748.     BX = 0000h
  6749.     CX:DX ignored
  6750. Return: AX = 0001h success
  6751. Desc:    this function is used to determine if the dispatcher is loaded
  6752. SeeAlso: AX=E10Bh,AX=E180h
  6753. --------e-92E103BX0000-----------------------
  6754. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  6755.     AX = E103h
  6756.     BX = 0000h
  6757.     CX:DX ignored
  6758. Return: AX = status (see AH=E1h)
  6759. SeeAlso: AX=E100h
  6760. --------e-92E104-----------------------------
  6761. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  6762.     AX = E104h
  6763.     BX = size of parameter block in words (0006h)
  6764.     CX:DX -> parameter block (see below)
  6765. Return: AX = status (see AH=E1h)
  6766. Desc:    this function is used to verify node address for usernames
  6767. SeeAlso: AX=E180h
  6768.  
  6769. Format of parameter block:
  6770. Offset    Size    Description
  6771.  00h    WORD    segment of node address buffer
  6772.  02h    WORD    offset of node address buffer
  6773.  04h    WORD    segment of uppercase username
  6774.  06h    WORD    offset of uppercase username
  6775.  08h    WORD    segment of "DVSEMAIL"
  6776.  0Ah    WORD    offset of "DVSEMAIL"
  6777. --------e-92E105-----------------------------
  6778. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  6779.     AX = E105h
  6780.     BX = size of parameter block in words (0007h)
  6781.     CX:DX -> parameter block (see below)
  6782. Return: AX = 0000h Error
  6783.     AX = handle
  6784. Desc:    this function is used to open a submission channel
  6785. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  6786.  
  6787. Format of parameter block:
  6788. Offset    Size    Description
  6789.  00h    WORD    operation (1 = read, 2 = write)
  6790.  02h    WORD    segment of uppercase To: username
  6791.  04h    WORD    offset of uppercase To: username
  6792.  06h    WORD    segment of "DVSEMAIL"
  6793.  08h    WORD    offset of "DVSEMAIL"
  6794.  0Ah    WORD    segment of node address
  6795.  0Ch    WORD    offset of node address
  6796. --------e-92E106BX0004-----------------------
  6797. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  6798.     AX = E106h
  6799.     BX = 0004h
  6800.     CX:DX -> parameter block
  6801. Return: AX = 0001h
  6802. SeeAlso: AX=E108h
  6803. --------e-92E107BX0002-----------------------
  6804. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  6805.     AX = E107h
  6806.     BX = 0002h
  6807.     CX:DX -> parameter block
  6808. Return: AX = 0001h
  6809. SeeAlso: AX=E109h,AX=E180h
  6810. --------e-92E108-----------------------------
  6811. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  6812.     AX = E108h
  6813.     BX = size of parameter block in words (0004h)
  6814.     CX:DX -> parameter block (see below)
  6815. Return: AX = amount written
  6816. Desc:    This function is used to write transactions to the dispatcher.
  6817.       The command block is written first and then another call is used
  6818.       to write the associated data.
  6819. SeeAlso: AX=E106h
  6820.  
  6821. Format of parameter block:
  6822. Offset    Size    Description
  6823.  00h    WORD    buffer count
  6824.  02h    WORD    segment of command buffer
  6825.  04h    WORD    offset of command buffer
  6826.  06h    WORD    handle from NetOpen
  6827.  
  6828. Format of command buffer:
  6829. Offset    Size    Description
  6830.  00h    BYTE    command
  6831.         21h '!' Protocol commands for remote control
  6832.         41h 'A' Authorization protocol element
  6833.         42h 'B' Return(back) routing information
  6834.             Associated data is the From: username
  6835.         43h 'C' Carbon Copy list
  6836.             Associated data is a comma delimitted list of usernames
  6837.         44h 'D' Distribution list
  6838.             Associated data is a comma delimitted list of usernames
  6839.         45h 'E' Mail end marker
  6840.             No associated data
  6841.         48h 'H' Mail message header
  6842.             Associated data is a message header buffer
  6843.         4Dh 'M' Mail message
  6844.             Associated data is the body of the message
  6845.         4Fh 'O' Object
  6846.         50h 'P' Paperclip attachment
  6847.         52h 'R' Routing information
  6848.             Associated data is the To: username
  6849.         53h 'S' Subject
  6850.             Associated data is the subject of the message
  6851.         54h 'T' Trail of Reply/Forwards
  6852.  01h    BYTE    subcommand
  6853.  02h    DWORD    length of associated data
  6854.  
  6855. Format of message header buffer:
  6856. Offset    Size    Description
  6857.  00h 30 BYTEs    subject line
  6858.  1Eh 24 BYTEs    To
  6859.  36h 24 BYTEs    From
  6860.  4Eh    DWORD    Time
  6861.         BYTE    00h
  6862.         BYTE    hour
  6863.         BYTE    minute
  6864.         BYTE    second
  6865.  52h    DWORD    Date
  6866.         BYTE    00h
  6867.         BYTE    year
  6868.         BYTE    month
  6869.         BYTE    day
  6870.  56h    DWORD    serial number (00000000h)
  6871.  5Ah    WORD    mail types (see below)
  6872.  5Ch    WORD    special types (0)
  6873.  
  6874. Bitfields for mail types:
  6875.  bit 7    blind carbon copy
  6876.  bit 6    carbon copy
  6877.  bit 5    priority
  6878.  bit 4    confidential
  6879.  bit 3    certified
  6880.  bit 2    bulk
  6881.  bits 1-0 class (first, second, third, bulk)
  6882. --------e-92E109-----------------------------
  6883. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  6884.     AX = E109h
  6885.     BX = size of parameter block in words (0001h)
  6886.     CX:DX -> parameter block (see below)
  6887. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  6888. SeeAlso: AX=E107h,AX=E180h
  6889.  
  6890. Format of parameter block:
  6891. Offset    Size    Description
  6892.  00h    WORD    ???
  6893. --------e-92E10A-----------------------------
  6894. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  6895.     AX = E10Ah
  6896.     BX = size of parameter block in words (0001h)
  6897.     CX:DX -> parameter block (see below)
  6898. Return: AX = 0001h
  6899. Desc:    this function is used to close a dispatcher handle
  6900. SeeAlso: AX=E105h
  6901.  
  6902. Format of parameter block:
  6903. Offset    Size    Description
  6904.  00h    WORD    handle from NetOpen
  6905. --------e-92E10B-----------------------------
  6906. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  6907.     AX = E10Bh
  6908.     BX = size of parameter block in words (0004h)
  6909.     CX:DX -> parameter block (see below)
  6910. Return: AX = 0001h
  6911. SeeAlso: AX=E102h,AX=E10Ch
  6912.  
  6913. Format of parameter block:
  6914. Offset    Size    Description
  6915.  00h    WORD    segment of 24-byte username buffer
  6916.  02h    WORD    offset of 24-byte username buffer
  6917.  04h    WORD    segment of 24-byte protocol buffer
  6918.  06h    WORD    offset of 24-byte protocol buffer
  6919. --------e-92E10C-----------------------------
  6920. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  6921.     AX = E10Ch
  6922.     BX = size of parameter block in words (0002h)
  6923.     CX:DX -> parameter block (see below)
  6924. Return: AX = 0001h
  6925. SeeAlso: AX=E10Bh
  6926.  
  6927. Format of parameter block:
  6928. Offset    Size    Description
  6929.  00h    WORD    Segment of 128 byte node address buffer
  6930.  02h    WORD    Offset of 128 byte node address buffer
  6931. --------e-92E10D-----------------------------
  6932. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  6933.     AX = E10Dh
  6934.     BX = size of parameter block in words (0006h)
  6935.     CX:DX -> parameter block (see below)
  6936. Return: AX = status (see AH=E1h)
  6937. Desc:    this function is used to verify username/password
  6938. SeeAlso: AX=E10Eh
  6939.  
  6940. Format of parameter block:
  6941. Offset    Size    Description
  6942.  00h    WORD    segment of uppercase password string
  6943.  02h    WORD    offset of uppercase password string
  6944.  04h    WORD    segment of uppercase username string
  6945.  06h    WORD    offset of uppercase username string
  6946.  08h    WORD    segment of "DVSEMAIL"
  6947.  0Ah    WORD    offset of "DVSEMAIL"
  6948. --------e-92E10E-----------------------------
  6949. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  6950.     AX = E10Eh
  6951.     BX = size of parameter block in words (0004h)
  6952.     CX:DX -> parameter block (see below)
  6953. Return: AX = 0001h
  6954. Desc:    this function is used to remove a username
  6955. SeeAlso: AX=E10Dh
  6956.  
  6957. Format of parameter block:
  6958. Offset    Type    Description
  6959.  00h    WORD    segment of uppercase username
  6960.  02h    WORD    offset of uppercase username
  6961.  04h    WORD    segment of "DVSEMAIL"
  6962.  06h    WORD    offset of "DVSEMAIL"
  6963. --------e-92E10FBX0000-----------------------
  6964. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  6965.     AX = E10Fh
  6966.     BX = 0000h
  6967.     CX:DX ignored
  6968. Return: AX = 0001h
  6969. SeeAlso: AX=E180h
  6970. --------e-92E110-----------------------------
  6971. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  6972.     AX = E110h
  6973.     BX = size of parameter block in words (0006h)
  6974.     CX:DX -> parameter block (see below)
  6975. Return: AX = 0001h
  6976. SeeAlso: AX=E111h,AX=E113h
  6977.  
  6978. Format of parameter block:
  6979. Offset    Size    Description
  6980.  00h  6 WORDs    ???
  6981. --------e-92E111-----------------------------
  6982. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  6983.     AX = E111h
  6984.     BX = size of parameter block in words (0004h)
  6985.     CX:DX -> parameter block (see below)
  6986. Return: AX = 0001h
  6987. SeeAlso: AX=E110h,AX=E113h
  6988.  
  6989. Format of parameter block:
  6990. Offset    Size    Description
  6991.  00h  4 WORDs    ???
  6992. --------e-92E112-----------------------------
  6993. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  6994.     AX = E112h
  6995.     BX = size of parameter block in words (0008h)
  6996.     CX:DX -> parameter block (see below)
  6997. Return: AX = 0001h
  6998. SeeAlso: AX=E180h
  6999.  
  7000. Format of parameter block:
  7001. Offset    Size    Description
  7002.  00h  8 WORDs    ???
  7003. --------e-92E113-----------------------------
  7004. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  7005.     AX = E113h
  7006.     BX = size of parameter block in words (0008h)
  7007.     CX:DX -> parameter block (see below)
  7008. Return: AX = 0001h
  7009. SeeAlso: AX=E110h,AX=E111h
  7010.  
  7011. Format of parameter block:
  7012. Offset    Size    Description
  7013.  00h  8 WORDs    ???
  7014. --------e-92E175-----------------------------
  7015. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  7016.     AX = E175h
  7017. Return: AX = 0012h
  7018.     BX = PSP
  7019. SeeAlso: AX=E180h
  7020. --------e-92E180-----------------------------
  7021. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  7022.     AX = E180h
  7023. Return: AX = 0012h if installed
  7024.     ES:DX -> '$'-terminated driver information string
  7025. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  7026. --------r-93---------------------------------
  7027. INT 93 - IBM ROM BASIC - used while in interpreter
  7028. Notes:    called by ROM BASIC
  7029.     BASIC.COM/BASICA.COM do not restore vector on termination
  7030. --------N-93---------------------------------
  7031. INT 93 - IBM TOKEN RING ADAPTER - ???
  7032. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  7033. --------r-94---------------------------------
  7034. INT 94 - IBM ROM BASIC - used while in interpreter
  7035. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7036.     BASIC.COM/BASICA.COM do not restore vector on termination
  7037. --------s-94----SI0000-----------------------
  7038. INT 94 u - PCM driver - INITIALIZE SOUND
  7039.     SI = 0000h
  7040.     ES:BX -> parameters
  7041. Return: ???
  7042. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  7043.       sound boards
  7044. Note:    the installation check consists of testing for the signature string
  7045.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  7046.       preceding the signature gives the PCM driver's version
  7047. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  7048. Index:    installation check;PCM driver|PCM.COM;installation check
  7049. Index:    PCM driver;installation check
  7050. --------s-94----SI0001-----------------------
  7051. INT 94 u - PCM driver - INITIALIZE PCM
  7052.     SI = 0001h
  7053.     ES:BX -> parameters
  7054. Return: ???
  7055. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  7056. --------s-94----SI0002-----------------------
  7057. INT 94 u - PCM driver - INITIALIZE PCM INFO
  7058.     SI = 0002h
  7059.     ES:BX -> parameters (see below)
  7060. Return: ???
  7061. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  7062.  
  7063. Format of parameters:
  7064. Offset    Size    Description
  7065.  00h    DWORD    rate
  7066.  04h    WORD    channel number
  7067.  06h    WORD    "comp"
  7068.  08h    WORD    "dsize"
  7069. --------s-94----SI0003-----------------------
  7070. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  7071.     SI = 0003h
  7072.     ES:BX -> parameters (see below)
  7073. Return: ???
  7074. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  7075.  
  7076. Format of parameters:
  7077. Offset    Size    Description
  7078.  00h    DWORD    -> DMA buffer
  7079.  04h    WORD    size of DMA buffer
  7080.  06h    WORD    number of divisions
  7081. --------s-94----SI0004-----------------------
  7082. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  7083.     SI = 0004h
  7084.     ES:BX -> parameters (see below)
  7085. Return: ???
  7086. SeeAlso: SI=0000h,SI=0001h
  7087.  
  7088. Format of parameters:
  7089. Offset    Size    Description
  7090.  00h    DWORD    -> user function
  7091. --------s-94----SI0005-----------------------
  7092. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  7093.     SI = 0005h
  7094. Return: ???
  7095. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  7096. --------s-94----SI0006-----------------------
  7097. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  7098.     SI = 0006h
  7099. Return: ???
  7100. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  7101. --------s-94----SI0007-----------------------
  7102. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  7103.     SI = 0007h
  7104. Return: ???
  7105. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  7106. --------s-94----SI0008-----------------------
  7107. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  7108.     SI = 0008h
  7109. Return: ???
  7110. SeeAlso: SI=0007h
  7111. --------s-94----SI0009-----------------------
  7112. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  7113.     SI = 0009h
  7114. Return: ???
  7115. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  7116. --------s-94----SI000A-----------------------
  7117. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  7118.     SI = 000Ah
  7119. Return: ???
  7120. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  7121. Index:    uninstall;PCM driver
  7122. --------s-94----SI000B-----------------------
  7123. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  7124.     SI = 000Bh
  7125.     ES:BX -> parameters (see below)
  7126. Return: ???
  7127. SeeAlso: SI=0003h
  7128.  
  7129. Format of parameters:
  7130. Offset    Size    Description
  7131.  00h    DWORD    -> memory block to contain DMA buffer
  7132.  04h    WORD    desired size of DMA buffer
  7133. --------s-94----SI000D-----------------------
  7134. INT 94 u - Media Vision PCM.COM - GET STATUS
  7135.     SI = 000Dh
  7136. Return: AX = status (0000h = waiting) (see below)
  7137.  
  7138. Bitfields for status:
  7139.  bit 0    playing
  7140.  bit 1    recording
  7141.  bit 2    SBplaying
  7142.  bit 3    SBrecording
  7143.  bit 14 SBpaused
  7144.  bit 15 paused
  7145. --------s-94----SI8000-----------------------
  7146. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  7147.     SI = 8000h
  7148. Return: DX:AX -> DMA buffer
  7149. Program: PCM.COM is a superset of the standard PCM driver which provides
  7150.       additional functions for fine control of the driver
  7151. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  7152.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  7153.       the INT 94 handler's segment
  7154. SeeAlso: SI=8001h,SI=8004h
  7155. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  7156. Index:    Media Vision PCM.COM;"shark" functions
  7157. --------s-94----SI8001-----------------------
  7158. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  7159.     SI = 8001h
  7160. Return: AX = DMA buffer size
  7161.     DX = divisions
  7162. SeeAlso: SI=8000h
  7163. --------s-94----SI8002-----------------------
  7164. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  7165.     SI = 8002h
  7166. Return: AX = status
  7167.         0000h if board not at specified I/O address
  7168.         other if board found
  7169. Note:    the I/O address is specified by ORing the base I/O port shifted left
  7170.       four bits into SI before calling INT 94
  7171. SeeAlso: SI=8000h
  7172. --------s-94----SI8004-----------------------
  7173. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  7174.     SI = 8004h
  7175. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  7176.     DX = size of buffer in note structures
  7177. SeeAlso: SI=8000h
  7178. --------s-94----SI8005-----------------------
  7179. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  7180.     SI = 8005h
  7181. Return: ???
  7182. --------s-94----SI8011-----------------------
  7183. INT 94 u - Media Vision PCM.COM - INITIALIZE
  7184.     SI = 8011h
  7185.     ES:BX -> "iobf91" structure
  7186. Return: ???
  7187. --------s-94----SI8012-----------------------
  7188. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  7189.     SI = 8012h
  7190.     ES:BX -> "i94f92buf" structure
  7191. Return: ???
  7192. SeeAlso: SI=8013h,SI=8014h
  7193. --------s-94----SI8013-----------------------
  7194. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  7195.     SI = 8013h
  7196. Return: AX = number of sounds used
  7197.     DX = maximum handles
  7198. --------s-94----SI8014-----------------------
  7199. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  7200.     SI = 8014h
  7201.     ES:BX -> "i94f92buf" structure to be filled in
  7202.         sound number field set to desired sound
  7203. Return: AX = status
  7204.         0000h successful
  7205.         FFFFh sound number out of range
  7206. SeeAlso: SI=8012h,SI=8013h
  7207. --------s-94----SI8015-----------------------
  7208. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  7209.     SI = 8015h
  7210.     ES:BX -> DMA info structure (see below)
  7211. Return: ???
  7212.  
  7213. Format of DMA info structure:
  7214. Offset    Size    Description
  7215.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  7216.  04h    WORD    DMA buffer size
  7217.  06h    WORD    divisions
  7218. --------s-94----SI8016-----------------------
  7219. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  7220.     SI = 8016h
  7221.     AX = hotkey number (01h-08h)
  7222. Return: ???
  7223. SeeAlso: AL=02h/SI=8017h
  7224. --------s-94--01SI8017-----------------------
  7225. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  7226.     AL = 01h
  7227.     SI = 8017h
  7228.     AH = new state (00h off, 01h on)
  7229. Return: ???
  7230. SeeAlso: AL=02h/SI=8017h
  7231. --------s-94--02SI8017-----------------------
  7232. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  7233.     AL = 02h
  7234.     SI = 8017h
  7235.     AH = new state (00h off, 01h on)
  7236. Return: ???
  7237. --------s-94--04SI8017-----------------------
  7238. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  7239.     AL = 04h
  7240.     SI = 8017h
  7241.     AH = new state
  7242.         00h off
  7243.         01h on
  7244.         CX = minimum delay
  7245.         DX = maximum delay
  7246. Return: ???
  7247. --------s-94--08SI8017-----------------------
  7248. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  7249.     AL = 08h
  7250.     SI = 8017h
  7251.     AH = new state
  7252.         00h off
  7253.         01h on
  7254.         DX:CX = delay
  7255. Return: ???
  7256. SeeAlso: AL=10h/SI=8017h
  7257. --------s-94--10SI8017-----------------------
  7258. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  7259.     AL = 10h
  7260.     SI = 8017h
  7261.     AH bit 7: set timer
  7262.     AH bit 6: timer active (timer turned off if clear)
  7263.     AH bits 5-0: timer number
  7264.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  7265. Return: ???
  7266. SeeAlso: AL=08h/SI=8017h
  7267. --------s-94----SI8018-----------------------
  7268. INT 94 u - Media Vision PCM.COM - GET INFO
  7269.     SI = 8018h
  7270.     AL = what to get
  7271.         00h "F92state"
  7272.         01h "F92bkgd"
  7273.         02h "I10timer"
  7274.         03h "I08state"
  7275. Return: DX:AX -> desired information
  7276. --------r-95---------------------------------
  7277. INT 95 - IBM ROM BASIC - used while in interpreter
  7278. Notes:    called by ROM BASIC
  7279.     BASIC.COM/BASICA.COM do not restore vector on termination
  7280. --------r-95---------------------------------
  7281. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  7282. Note:    use only when the R= option is invoked on entering APL
  7283. --------r-96---------------------------------
  7284. INT 96 - IBM ROM BASIC - used while in interpreter
  7285. Notes:    called by ROM BASIC
  7286.     BASIC.COM/BASICA.COM do not restore vector on termination
  7287. --------r-97---------------------------------
  7288. INT 97 - IBM ROM BASIC - used while in interpreter
  7289. Notes:    called by ROM BASIC
  7290.     BASIC.COM/BASICA.COM do not restore vector on termination
  7291. --------r-98---------------------------------
  7292. INT 98 - IBM ROM BASIC - used while in interpreter
  7293. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7294.     BASIC.COM/BASICA.COM do not restore vector on termination
  7295. --------r-99---------------------------------
  7296. INT 99 - IBM ROM BASIC - used while in interpreter
  7297. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7298.     BASIC.COM/BASICA.COM do not restore vector on termination
  7299. --------r-9A---------------------------------
  7300. INT 9A - IBM ROM BASIC - used while in interpreter
  7301. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7302.     BASIC.COM/BASICA.COM do not restore vector on termination
  7303. --------r-9B---------------------------------
  7304. INT 9B - IBM ROM BASIC - used while in interpreter
  7305. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7306.     BASIC.COM/BASICA.COM do not restore vector on termination
  7307. --------r-9C---------------------------------
  7308. INT 9C - IBM ROM BASIC - used while in interpreter
  7309. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7310.     BASIC.COM/BASICA.COM do not restore vector on termination
  7311. --------v-9C---------------------------------
  7312. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  7313. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7314. --------r-9D---------------------------------
  7315. INT 9D - IBM ROM BASIC - used while in interpreter
  7316. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7317.     BASIC.COM/BASICA.COM do not restore vector on termination
  7318. --------v-9D---------------------------------
  7319. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  7320. Note:    this vector is used by the virus to store the result of a call to
  7321.       INT 2F/AH=13h
  7322. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  7323. --------r-9E---------------------------------
  7324. INT 9E - IBM ROM BASIC - used while in interpreter
  7325. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7326.     BASIC.COM/BASICA.COM do not restore vector on termination
  7327. --------v-9E---------------------------------
  7328. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  7329. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  7330. --------r-9F---------------------------------
  7331. INT 9F - IBM ROM BASIC - used while in interpreter
  7332. Notes:    called by ROM BASIC
  7333.     BASIC.COM/BASICA.COM do not restore vector on termination
  7334. --------v-9F---------------------------------
  7335. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  7336. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  7337.       this interrupt to store the existing INT 13 vector for later
  7338.       restoration
  7339. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS"
  7340. --------r-A0---------------------------------
  7341. INT A0 - IBM ROM BASIC - used while in interpreter
  7342. Notes:    called by ROM BASIC
  7343.     BASIC.COM/BASICA.COM do not restore vector on termination
  7344. --------r-A0---------------------------------
  7345. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  7346. SeeAlso: INT 59
  7347. --------r-A1---------------------------------
  7348. INT A1 - IBM ROM BASIC - used while in interpreter
  7349. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7350.     BASIC.COM/BASICA.COM do not restore vector on termination
  7351. --------r-A2---------------------------------
  7352. INT A2 - IBM ROM BASIC - used while in interpreter
  7353. Notes:    called by ROM BASIC
  7354.     BASIC.COM/BASICA.COM do not restore vector on termination
  7355. --------r-A3---------------------------------
  7356. INT A3 - IBM ROM BASIC - used while in interpreter
  7357. Notes:    called by ROM BASIC
  7358.     BASIC.COM/BASICA.COM do not restore vector on termination
  7359. --------r-A4---------------------------------
  7360. INT A4 - IBM ROM BASIC - used while in interpreter
  7361. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7362.     BASIC.COM/BASICA.COM do not restore vector on termination
  7363. --------U-A4---------------------------------
  7364. INT A4 U - Right Hand Man - API
  7365.     AH = function number (v3.3 supports functions 00h-52h)
  7366. Return: CF set on error
  7367.     CF clear if successful
  7368. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  7369.       which has evolved into Futurus Team
  7370. Note:    this interrupt is only hooked while popped up
  7371. SeeAlso: INT 2F/AX=A4E0h
  7372. --------r-A5---------------------------------
  7373. INT A5 - IBM ROM BASIC - used while in interpreter
  7374. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7375.     BASIC.COM/BASICA.COM do not restore vector on termination
  7376. --------r-A6---------------------------------
  7377. INT A6 - IBM ROM BASIC - used while in interpreter
  7378. Notes:    called by ROM BASIC
  7379.     BASIC.COM/BASICA.COM do not restore vector on termination
  7380. --------r-A7---------------------------------
  7381. INT A7 - IBM ROM BASIC - used while in interpreter
  7382. Notes:    called by ROM BASIC
  7383.     BASIC.COM/BASICA.COM do not restore vector on termination
  7384. --------r-A8---------------------------------
  7385. INT A8 - IBM ROM BASIC - used while in interpreter
  7386. Notes:    called by ROM BASIC
  7387.     BASIC.COM/BASICA.COM do not restore vector on termination
  7388. --------r-A9---------------------------------
  7389. INT A9 - IBM ROM BASIC - used while in interpreter
  7390. Notes:    called by ROM BASIC
  7391.     BASIC.COM/BASICA.COM do not restore vector on termination
  7392. --------r-AA---------------------------------
  7393. INT AA - IBM ROM BASIC - used while in interpreter
  7394. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7395.     BASIC.COM/BASICA.COM do not restore vector on termination
  7396. --------r-AB---------------------------------
  7397. INT AB - IBM ROM BASIC - used while in interpreter
  7398. Notes:    called by ROM BASIC
  7399.     BASIC.COM/BASICA.COM do not restore vector on termination
  7400. --------r-AC---------------------------------
  7401. INT AC - IBM ROM BASIC - used while in interpreter
  7402. Notes:    called by ROM BASIC
  7403.     BASIC.COM/BASICA.COM do not restore vector on termination
  7404. --------r-AD---------------------------------
  7405. INT AD - IBM ROM BASIC - used while in interpreter
  7406. Notes:    called by ROM BASIC
  7407.     BASIC.COM/BASICA.COM do not restore vector on termination
  7408. --------r-AE---------------------------------
  7409. INT AE - IBM ROM BASIC - used while in interpreter
  7410. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7411.     BASIC.COM/BASICA.COM do not restore vector on termination
  7412. --------r-AF---------------------------------
  7413. INT AF - IBM ROM BASIC - used while in interpreter
  7414. Notes:    called by ROM BASIC
  7415.     BASIC.COM/BASICA.COM do not restore vector on termination
  7416. --------r-B0---------------------------------
  7417. INT B0 - IBM ROM BASIC - used while in interpreter
  7418. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7419.     BASIC.COM/BASICA.COM do not restore vector on termination
  7420. --------r-B1---------------------------------
  7421. INT B1 - IBM ROM BASIC - used while in interpreter
  7422. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7423.     BASIC.COM/BASICA.COM do not restore vector on termination
  7424. --------r-B2---------------------------------
  7425. INT B2 - IBM ROM BASIC - used while in interpreter
  7426. Notes:    called by ROM BASIC
  7427.     BASIC.COM/BASICA.COM do not restore vector on termination
  7428. --------r-B3---------------------------------
  7429. INT B3 - IBM ROM BASIC - used while in interpreter
  7430. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7431.     BASIC.COM/BASICA.COM do not restore vector on termination
  7432. --------U-B370-------------------------------
  7433. INT B3 - ZIPKEY - GET VERSION
  7434.     AH = 70h
  7435. Return: AH = major version
  7436.     AL = minor version
  7437.     CL = number of states and territories in current database
  7438.     DH = year of current database - 1900
  7439.     DL = month of current database's file date
  7440. Return: AX destroyed
  7441. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  7442. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  7443.       interrupt handler's segment, and the byte at 7Bh contains the API
  7444.       version number (00h for v1.x, 01h for v2.0)
  7445. --------U-B371-------------------------------
  7446. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  7447.     AH = 71h
  7448.     BX = abbreviation, in either case (first letter in BL)
  7449. Return: CF set on error
  7450.         AL = FFh
  7451.     CF clear if successful
  7452.         AL = ZIPKEY state code
  7453. SeeAlso: AH=72h
  7454. --------U-B372-------------------------------
  7455. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  7456.     AH = 72h
  7457.     BL = ZIPKEY state code
  7458. Return: CF set on error
  7459.         AX destroyed
  7460.     CF clear if successful
  7461.         AX = abbreviation, in upper case
  7462. SeeAlso: AH=71h,AH=73h
  7463. --------U-B373-------------------------------
  7464. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  7465.     AH = 73h
  7466.     BL = ZIPKEY state code
  7467.     ES:DI -> buffer for name
  7468. Return: CF set on error
  7469.         AX destroyed
  7470.     CF clear if successful
  7471.         ES:DI points one byte beyond end of name
  7472. SeeAlso: AH=72h
  7473. --------U-B374-------------------------------
  7474. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  7475.     AH = 74h
  7476.     DX = zipcode region (0-999)
  7477.     CH = last two digits of zipcode (0-99)
  7478.     ES:DI -> buffer
  7479. Return: CF set on error
  7480.         AX destroyed
  7481.     CF clear if successful
  7482.         ES:DI points one byte beyond end of digit string
  7483. --------U-B375-------------------------------
  7484. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  7485.     AH = 75h
  7486.     DX = zipcode region (0-999)
  7487.     CH = last two digits of zipcode (0-99)
  7488. Return: CF set on error (zipcode not found)
  7489.         AL = suggested state code, FFh if none
  7490.     CF clear if successful
  7491.         AL = ZIPKEY state code
  7492.         BX = area code (v2.0+)
  7493. SeeAlso: AH=76h,AH=79h
  7494. --------U-B376-------------------------------
  7495. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  7496.     AH = 76h
  7497.     DX = zipcode region (0-999)
  7498.     CH = last two digits of zipcode (0-99)
  7499.     ES:DI -> buffer for name
  7500. Return: CF set on error
  7501.         AL = suggested state code, FFh if none
  7502.         ES:DI buffer filled with suggested city name
  7503.     CF clear if successful
  7504.         AL = ZIPKEY state code
  7505.         BX = area code (v2.0+)
  7506.         ES:DI points one byte beyond end of name
  7507. SeeAlso: AH=75h,AH=78h,AH=7Eh
  7508. --------U-B377-------------------------------
  7509. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  7510.     AH = 77h
  7511.     DX = zipcode region (0-999)
  7512.     CH = last two digits of zipcode (0-99)
  7513.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  7514. Return: CF set on error
  7515.         AX destroyed
  7516.     CF clear if successful
  7517.         zipcode specification as defined by the BX keystroke is placed in
  7518.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  7519.           by pressing the key specified by BX
  7520. --------U-B378-------------------------------
  7521. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  7522.     AH = 78h
  7523.     BL = ZIPKEY state code
  7524.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7525. Return: BH = number of matching entries (set to 51 if more than 50)
  7526.     DX = zipcode region of first match (0-999)
  7527.     CL = last two digits of first zipcode in the range (0-99)
  7528.     CH = last two digits of last zipcode in the range (0-99)
  7529.     AX destroyed
  7530. SeeAlso: AH=79h,AH=7Ah
  7531. --------U-B379-------------------------------
  7532. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  7533.     AH = 79h
  7534.     BL = ZIPKEY state code of first state to search
  7535.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7536. Return: AL = ZIPKEY state code of first matching state
  7537.     BH = number of matching entries (set to 51 if more than 50)
  7538.     DX = zipcode region of first match (0-999)
  7539.     CL = last two digits of first zipcode in first range (0-99)
  7540.     CH = last two digits of last zipcode in first range (0-99)
  7541. Note:    to find all matching cities, repeat search with BL set to one more than
  7542.       the returned AL
  7543. SeeAlso: AH=78h,AH=7Ah
  7544. --------U-B37A-------------------------------
  7545. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  7546.     AH = 7Ah
  7547.     BL = case number (0 to one less than value returned in BH by lookup)
  7548. Return: AL = ZIPKEY state code
  7549.     DX = zipcode region (0-999)
  7550.     CL = last two digits of first zipcode in the range (0-99)
  7551.     CH = last two digits of last zipcode in the range (0-99)
  7552. SeeAlso: AH=78h,AH=79h
  7553. --------U-B37B-------------------------------
  7554. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  7555.     AH = 7Bh
  7556. Return: BL = maximum number of characters for a city name
  7557.     BH = ZIPKEY state code for last city-name search
  7558.         FFh if none
  7559.     CX:DX = internal code identifying last city search
  7560.     AX destroyed
  7561. SeeAlso: AH=7Ch
  7562. --------U-B37C-------------------------------
  7563. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  7564.     AH = 7Ch
  7565.     BL = maximum number of characters for a city name
  7566.     BH = ZIPKEY state code for last city-name search
  7567.         FFh if none
  7568.     CX:DX = internal code returned by AH=7Bh
  7569. Return: CF set on error
  7570.     CF clear if successful
  7571.     AX destroyed
  7572. SeeAlso: AH=7Bh
  7573. --------U-B37D-------------------------------
  7574. INT B3 - ZIPKEY - REQUEST POP UP
  7575.     AH = 7Dh
  7576.     BL = index number to simulate pressing a hotkey
  7577.         FFh for immediate popup with no playback on return
  7578. Return: CF set on error
  7579.         AL = FDh already busy with another request
  7580.            = FEh illegal function
  7581.     CF clear if successful
  7582.         AX destroyed
  7583.         window popped up and was closed by the user
  7584. SeeAlso: AH=70h
  7585. --------U-B37E-------------------------------
  7586. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  7587.     AH = 7Eh
  7588.     DX = zipcode region (0-999)
  7589.     ES:DI -> buffer for name
  7590. Return: CF set on error
  7591.         AL = FFh region does not exist
  7592.     CF clear if successful
  7593.         AL = ZIPKEY state code
  7594.         ES:DI points one byte beyond end of name
  7595. SeeAlso: AH=76h
  7596. --------U-B37F-------------------------------
  7597. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  7598.     AH = 7Fh
  7599.     BL = function
  7600.         00h turn off hotkeys
  7601.         01h turn on hotkeys
  7602.         02h return hotkey status
  7603.         03h toggle hotkey status
  7604. Return: AL = hotkey status
  7605.         00h off
  7606.         01h on
  7607. --------U-B380-------------------------------
  7608. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  7609.     AH = 80h
  7610.     BX = telephone area code (decimal)
  7611. Return: CF clear if successful
  7612.         AL = ZIPKEY state code
  7613.         DX = first ZIP region for state (03E8h if Canada)
  7614.         CX = number of ZIP regions in state
  7615.     CF set on error
  7616.         AL = FFh
  7617.         DX = 03E9h
  7618. --------r-B4---------------------------------
  7619. INT B4 - IBM ROM BASIC - used while in interpreter
  7620. Notes:    called by ROM BASIC
  7621.     BASIC.COM/BASICA.COM do not restore vector on termination
  7622. ----------B4---------------------------------
  7623. INT B4 - StackMan - REQUEST NEW STACK
  7624. Return: SS:SP -> new stack
  7625. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  7626.       which functions as a replacement for the DOS STACK= command as well
  7627.       as permitting multiple TSRs to share a pool of stack space
  7628. Note:    the installation check consists of testing for the string "STACKXXX" at
  7629.       offset 0Ah from the interrupt handler
  7630. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  7631. Index:    installation check;STACKMAN
  7632. --------r-B5---------------------------------
  7633. INT B5 - IBM ROM BASIC - used while in interpreter
  7634. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7635.     BASIC.COM/BASICA.COM do not restore vector on termination
  7636. ----------B5---------------------------------
  7637. INT B5 - StackMan - RESTORE ORIGINAL STACK
  7638.     SS:SP -> stack returned by INT B4
  7639. Return: SS:SP restored to value before INT B4
  7640. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  7641. ----------B5---------------------------------
  7642. INT B5 U - Netroom NETSWAP4 - ???
  7643.     ???
  7644. Return: ???
  7645. SeeAlso: INT 31/AH=57h
  7646. --------r-B6---------------------------------
  7647. INT B6 - IBM ROM BASIC - used while in interpreter
  7648. Notes:    called by ROM BASIC
  7649.     BASIC.COM/BASICA.COM do not restore vector on termination
  7650. --------r-B7---------------------------------
  7651. INT B7 - IBM ROM BASIC - used while in interpreter
  7652. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7653.     BASIC.COM/BASICA.COM do not restore vector on termination
  7654. --------r-B8---------------------------------
  7655. INT B8 - IBM ROM BASIC - used while in interpreter
  7656. Notes:    called by ROM BASIC
  7657.     BASIC.COM/BASICA.COM do not restore vector on termination
  7658. --------r-B9---------------------------------
  7659. INT B9 - IBM ROM BASIC - used while in interpreter
  7660. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7661.     BASIC.COM/BASICA.COM do not restore vector on termination
  7662. --------r-BA---------------------------------
  7663. INT BA - IBM ROM BASIC - used while in interpreter
  7664. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7665.     BASIC.COM/BASICA.COM do not restore vector on termination
  7666. --------r-BB---------------------------------
  7667. INT BB - IBM ROM BASIC - used while in interpreter
  7668. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7669.     BASIC.COM/BASICA.COM do not restore vector on termination
  7670. --------r-BC---------------------------------
  7671. INT BC - IBM ROM BASIC - used while in interpreter
  7672. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7673.     BASIC.COM/BASICA.COM do not restore vector on termination
  7674. --------r-BD---------------------------------
  7675. INT BD - IBM ROM BASIC - used while in interpreter
  7676. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7677.     BASIC.COM/BASICA.COM do not restore vector on termination
  7678. --------r-BE---------------------------------
  7679. INT BE - IBM ROM BASIC - used while in interpreter
  7680. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7681.     BASIC.COM/BASICA.COM do not restore vector on termination
  7682. --------Q-BE---------------------------------
  7683. INT BE - DESQview/X - ???
  7684. Note:    points at an IRET
  7685. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  7686. --------r-BF---------------------------------
  7687. INT BF - IBM ROM BASIC - used while in interpreter
  7688. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7689.     BASIC.COM/BASICA.COM do not restore vector on termination
  7690. --------r-C0---------------------------------
  7691. INT C0 - IBM ROM BASIC - used while in interpreter
  7692. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7693.     BASIC.COM/BASICA.COM do not restore vector on termination
  7694. --------r-C1---------------------------------
  7695. INT C1 - IBM ROM BASIC - used while in interpreter
  7696. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7697.     BASIC.COM/BASICA.COM do not restore vector on termination
  7698. --------r-C2---------------------------------
  7699. INT C2 - IBM ROM BASIC - used while in interpreter
  7700. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7701.     BASIC.COM/BASICA.COM do not restore vector on termination
  7702. --------r-C3---------------------------------
  7703. INT C3 - IBM ROM BASIC - used while in interpreter
  7704. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7705.     BASIC.COM/BASICA.COM do not restore vector on termination
  7706. --------r-C4---------------------------------
  7707. INT C4 - IBM ROM BASIC - used while in interpreter
  7708. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7709.     BASIC.COM/BASICA.COM do not restore vector on termination
  7710. --------r-C5---------------------------------
  7711. INT C5 - IBM ROM BASIC - used while in interpreter
  7712. Notes:    called by ROM BASIC
  7713.     BASIC.COM/BASICA.COM do not restore vector on termination
  7714. --------r-C6---------------------------------
  7715. INT C6 - IBM ROM BASIC - used while in interpreter
  7716. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7717.     BASIC.COM/BASICA.COM do not restore vector on termination
  7718. --------r-C6---------------------------------
  7719. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  7720. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7721.       the older interrupts
  7722. SeeAlso: INT 86"APL"
  7723. --------r-C7---------------------------------
  7724. INT C7 - IBM ROM BASIC - used while in interpreter
  7725. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7726.     BASIC.COM/BASICA.COM do not restore vector on termination
  7727. --------r-C7---------------------------------
  7728. INT C7 - APL*PLUS/PC - ???
  7729. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7730.       the older interrupts
  7731. SeeAlso: INT 87"APL"
  7732. --------r-C8---------------------------------
  7733. INT C8 - IBM ROM BASIC - used while in interpreter
  7734. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7735.     BASIC.COM/BASICA.COM do not restore vector on termination
  7736. --------r-C8---------------------------------
  7737. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  7738. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7739.       the older interrupts
  7740. SeeAlso: INT 88"APL"
  7741. --------r-C9---------------------------------
  7742. INT C9 - IBM ROM BASIC - used while in interpreter
  7743. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7744.     BASIC.COM/BASICA.COM do not restore vector on termination
  7745. --------r-C9---------------------------------
  7746. INT C9 - APL*PLUS/PC - ???
  7747. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7748.       the older interrupts
  7749. SeeAlso: INT 89"APL"
  7750. --------r-CA---------------------------------
  7751. INT CA - IBM ROM BASIC - used while in interpreter
  7752. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7753.     BASIC.COM/BASICA.COM do not restore vector on termination
  7754. --------r-CA---------------------------------
  7755. INT CA - APL*PLUS/PC - PRINT SCREEN
  7756. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7757.       the older interrupts
  7758. SeeAlso: INT 8A"APL"
  7759. --------r-CB---------------------------------
  7760. INT CB - IBM ROM BASIC - used while in interpreter
  7761. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7762.     BASIC.COM/BASICA.COM do not restore vector on termination
  7763. --------r-CB---------------------------------
  7764. INT CB - APL*PLUS/PC - BEEP
  7765. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7766.       the older interrupts
  7767.     same as printing a ^G via INT 21/AH=02h
  7768. SeeAlso: INT 8B"APL"
  7769. --------r-CC---------------------------------
  7770. INT CC - IBM ROM BASIC - used while in interpreter
  7771. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7772.     BASIC.COM/BASICA.COM do not restore vector on termination
  7773. --------r-CC---------------------------------
  7774. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  7775.     AX = flag
  7776.         0000h do not save display attributes
  7777.         0001h save attributes
  7778. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7779.       the older interrupts
  7780. SeeAlso: INT 8C"APL"
  7781. --------r-CD---------------------------------
  7782. INT CD - IBM ROM BASIC - used while in interpreter
  7783. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7784.     BASIC.COM/BASICA.COM do not restore vector on termination
  7785. --------r-CD---------------------------------
  7786. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7787. --------r-CE---------------------------------
  7788. INT CE - IBM ROM BASIC - used while in interpreter
  7789. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7790.     BASIC.COM/BASICA.COM do not restore vector on termination
  7791. --------r-CE---------------------------------
  7792. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7793. --------r-CF---------------------------------
  7794. INT CF - IBM ROM BASIC - used while in interpreter
  7795. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7796.     BASIC.COM/BASICA.COM do not restore vector on termination
  7797. --------r-CF---------------------------------
  7798. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  7799. SeeAlso: INT E0"APL"
  7800. --------r-D0---------------------------------
  7801. INT D0 - IBM ROM BASIC - used while in interpreter
  7802. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7803.     BASIC.COM/BASICA.COM do not restore vector on termination
  7804. --------r-D0---------------------------------
  7805. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7806. --------U-D0---------------------------------
  7807. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  7808. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  7809.       James" Blaszczak
  7810. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  7811. Index:    installation check;NJFRERAM
  7812. --------r-D1---------------------------------
  7813. INT D1 - IBM ROM BASIC - used while in interpreter
  7814. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7815.     BASIC.COM/BASICA.COM do not restore vector on termination
  7816. --------r-D1---------------------------------
  7817. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7818. --------r-D2---------------------------------
  7819. INT D2 - IBM ROM BASIC - used while in interpreter
  7820. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7821.     BASIC.COM/BASICA.COM do not restore vector on termination
  7822. --------r-D2---------------------------------
  7823. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7824. --------r-D3---------------------------------
  7825. INT D3 - IBM ROM BASIC - used while in interpreter
  7826. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7827.     BASIC.COM/BASICA.COM do not restore vector on termination
  7828. --------r-D3---------------------------------
  7829. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7830. --------r-D4---------------------------------
  7831. INT D4 - IBM ROM BASIC - used while in interpreter
  7832. Notes:    called by ROM BASIC
  7833.     BASIC.COM/BASICA.COM do not restore vector on termination
  7834. --------r-D4---------------------------------
  7835. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7836. --------O-D400-------------------------------
  7837. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  7838.     AH = 00h and 01h
  7839. Return: nothing
  7840. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  7841.       and enters an endless loop
  7842. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7843.       system by The Software Link, Inc.
  7844. --------O-D402-------------------------------
  7845. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  7846.     AH = 02h
  7847. Return: AX = 0000h
  7848.     ES:BX -> System Control Block in V86 mode (see below)
  7849.     ES:EBX -> System Control Block in native mode (see below)
  7850. Note:    superseded by AH=26h
  7851. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  7852.  
  7853. Format of System Control Block:
  7854. Offset    Size    Description
  7855.  00h    WORD    pointer to first TCB in chain
  7856.  02h 17 BYTEs    reserved
  7857.  13h    WORD    pointer to current task's TCB
  7858.  15h    WORD    pointer to TCB of visible (console) task
  7859. --------O-D403-------------------------------
  7860. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  7861.     AH = 03h
  7862.     AL = subfunction (00h get, 01h set)
  7863.     DS:(E)DX -> pathname
  7864.     ES:(E)BX -> 10-byte buffer for directory information (see below)
  7865. Return: CF clear if successful
  7866.         AL = permitted access level for file (00h-03h)
  7867.         ES:(E)BX -> modified buffer (AL=01h on entry)
  7868.     CF set on error
  7869.         AX = error code (see INT 21/AH=59h)
  7870. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  7871.     the file class cannot be changed for files because it affects the
  7872.       encryption method, but directories can have their classes changed
  7873.  
  7874. Format of directory information:
  7875. Offset    Size    Description
  7876.  00h    BYTE    reserved (0)
  7877.  01h    BYTE    file class ('A'-'Z' or 00h)
  7878.  02h    DWORD    user ID of file creator
  7879.  06h    WORD    file creation time (see INT 21/AX=5700h)
  7880.  08h    WORD    file creation date (see INT 21/AX=5700h)
  7881. --------O-D404-------------------------------
  7882. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  7883.     AH = 04h
  7884.     BX = task ID or FFFFh for calling task
  7885. Return: CF clear if successful
  7886.         ES = segment of Task Control Block (TCB) (see below)
  7887.     CF set on error
  7888.         AX = error code (see INT 21/AH=59h)
  7889. Note:    superseded by AH=27h
  7890. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  7891.  
  7892. Format of Task Control Block:
  7893. Offset    Size    Description
  7894.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7895.  01h    BYTE    header block ID, "T" = TCB
  7896.  02h    WORD    length of block in paragraphs
  7897.  04h    WORD    segment address of next header block (0000h if last)
  7898.  06h    WORD    segment address of previous header block (0000h if first)
  7899.  08h    WORD    pointer to next TCB
  7900.  0Ah    WORD    pointer to previous TCB
  7901.  0Ch    WORD    pointer to associated TCB (if applicable)
  7902.  0Eh    WORD    reserved
  7903. ---TCB---
  7904.  10h    WORD    TCB task ID
  7905.  12h    WORD    native context save area
  7906.  14h    WORD    start address of task
  7907.  16h    WORD    end address of task
  7908.  18h    BYTE    task priority
  7909.  19h    BYTE    task time slice
  7910.  1Ah    BYTE    "TCBWAIT" run status of task
  7911.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  7912.  1Ch    DWORD    address of polling routine
  7913.  20h    BYTE    error code from last function call
  7914.  21h 11 BYTEs    name of currently executing task
  7915.  2Ch  4 BYTEs    ???
  7916.  30h    BYTE    keyboard disabled if bit 1 set
  7917.  31h    BYTE    current shift state and toggles
  7918.  32h  2 BYTEs    ???
  7919.  34h    BYTE    current video mode
  7920.  35h    BYTE    current video page
  7921.  36h    BYTE    number of text columns per screen
  7922.  37h    BYTE    number of text rows per screen
  7923.  38h    WORD    length of video buffer
  7924.  3Ah    WORD    video page length
  7925.  3Ch    WORD    apge start address in video RAM
  7926.  3Eh  4 WORDs    current cursor positions for four screen pages
  7927.  46h  8 BYTEs    ???
  7928.  4Eh    WORD    current cursor type
  7929.  50h    BYTE    current palette setting
  7930.  51h    BYTE    original video mode
  7931.  52h    BYTE    start CRT row (00h or 01h)
  7932.  53h    BYTE    video RAM in task active
  7933.  54h    WORD    handle of video save area
  7934.  56h    WORD    page count of video save area
  7935.  58h    WORD    segment address of video save area
  7936.  5Ah    WORD    poitner to first Task File Block (see below)
  7937.  5Ch    WORD    pointer to first Current Directory Block (see below)
  7938.  5Eh    WORD    pointer to active Current Directory Block (see below)
  7939.  60h    BYTE    number of drives
  7940.  61h    BYTE    current drive (0=A:, etc.)
  7941.  62h    DWORD    disk transfer address
  7942.  66h  4 BYTEs    ???
  7943.  6Ah    BYTE    verify flag (nonzero = on)
  7944.  6Bh    BYTE    break flag (nonzero = on)
  7945.  6Ch    WORD    share/lock retry count
  7946.  6Eh    WORD    ticks between share/lock retries
  7947.  70h    BYTE    remote printer flags (see below)
  7948.  71h    BYTE    ETX/ACK delay count
  7949.  72h    WORD    spooler segment address
  7950.  74h  2 BYTEs    ???
  7951.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see below)
  7952.  79h  2 BYTEs    ???
  7953.  7Bh    DWORD    offset of username in TCB
  7954.  7Fh    BYTE    current output class
  7955.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  7956.  87h 122 BYTEs    ???
  7957. 101h    BYTE    TCB sleep downcounter value
  7958. 102h 20 BYTEs    ???
  7959. 116h    BYTE    last scan code
  7960.     ...
  7961. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  7962. 5D4h    WORD    offset of logical screen
  7963. 5D6h    WORD    segment of logical screen
  7964. 5D8h    WORD    cursor offset within page
  7965. 5DAh    BYTE    screen columns
  7966. 5DBh    WORD    async port number (0000h = none)
  7967. 5DDh    DWORD    physical baudrate
  7968. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  7969.     ...
  7970. 7A6h    DWORD    far pointer to unregister calling chain
  7971.  
  7972. Bitfield for remote printer flags:
  7973.  bit 0    LPT1 to terminal
  7974.  bit 1    LPT2 to terminal
  7975.  bit 2    LPT3 to terminal
  7976.  bit 3    escape to printer pending
  7977.  bit 4    use XON/XOFF
  7978.  bit 5    use ETX/ACK
  7979.  bit 6    waiting for ACK or XON
  7980.  bit 7    transparent printing on
  7981.  
  7982. Values for remote printer redirection:
  7983.  00h    not redirected
  7984.  01h    redirected to COM1
  7985.  ...
  7986.  18h    redirected to COM24
  7987.  51h    redirected to LPT1
  7988.  52h    redirected to LPT2
  7989.  53h    redirected to LPT3
  7990.  
  7991. Format of Task File Block:
  7992. Offset    Size    Description
  7993.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7994.  01h    BYTE    header block ID, "F" = task file block
  7995.  02h    WORD    length of block in paragraphs
  7996.  04h    WORD    segment address of next header block (0000h if last)
  7997.  06h    WORD    segment address of previous header block (0000h if first)
  7998.  08h    WORD    pointer to next TCB
  7999.  0Ah    WORD    pointer to previous TCB
  8000.  0Ch    WORD    pointer to associated TCB (if applicable)
  8001.  0Eh    WORD    reserved
  8002. ---TFB---
  8003.  10h    WORD    segment address of next TFB
  8004.  12h    WORD    segment address of previous TFB
  8005.  14h    WORD    segment address of TFB's Global File Block (see below)
  8006.  16h    WORD    segment address of owner's PSP
  8007.  18h    WORD    file handle
  8008.  1Ah  3 BYTEs    ???
  8009.  1Dh    DWORD    file position
  8010.  21h  4 BYTEs    ???
  8011.  25h    BYTE    IOCTL flags (see below)
  8012.  26h  2 BYTEs    ???
  8013.  
  8014. Bitfields for IOCTL flags:
  8015.  bit 0    stdin
  8016.  bit 1    stdout
  8017.  bit 2    null device
  8018.  bit 3    clock device
  8019.  bit 4    reserved
  8020.  bit 5    ASCII mode instead of binary
  8021.  bit 6    EOF encountered on input
  8022.  bit 7    device rather than file
  8023.  
  8024. Format of Global File Block:
  8025. Offset    Size    Description
  8026.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8027.  01h    BYTE    header block ID, "G" = global file block
  8028.  02h    WORD    length of block in paragraphs
  8029.  04h    WORD    segment address of next header block (0000h if last)
  8030.  06h    WORD    segment address of previous header block (0000h if first)
  8031.  08h    WORD    pointer to next TCB
  8032.  0Ah    WORD    pointer to previous TCB
  8033.  0Ch    WORD    pointer to associated TCB (if applicable)
  8034.  0Eh    WORD    reserved
  8035. ---GFB---
  8036.  10h 10 BYTEs    ???
  8037.  1Ah    WORD    file attribute
  8038.  1Ch    BYTE    ???
  8039.  1Dh    DWORD    address of device driver
  8040.  21h    WORD    first cluster
  8041.  23h    WORD    time of last modification
  8042.  25h    WORD    date of last modification
  8043.  27h    DWORD    size of file in bytes
  8044.  2Bh 11 BYTEs    ???
  8045.  36h 11 BYTEs    device name or FCB-format filename
  8046.  41h    WORD    segment addres off TFB list
  8047.  43h    WORD    segment address of first RLB (see below) (0000h = none)
  8048.  45h    BYTE    flag: nonzero if GFB refers to character device
  8049.  46h    WORD    address of Block Device Block (see below)
  8050.  48h    WORD    sector of file's directory entry
  8051.  4Ah    WORD    high word of file's directory entry
  8052.  4Ch    WORD    ofsset of directory entry within sector
  8053.  
  8054. Format of Current Directory Block:
  8055. Offset    Size    Description
  8056.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8057.  01h    BYTE    header block ID, "C" = current directory block
  8058.  02h    WORD    length of block in paragraphs
  8059.  04h    WORD    segment address of next header block (0000h if last)
  8060.  06h    WORD    segment address of previous header block (0000h if first)
  8061.  08h    WORD    pointer to next TCB
  8062.  0Ah    WORD    pointer to previous TCB
  8063.  0Ch    WORD    pointer to associated TCB (if applicable)
  8064.  0Eh    WORD    reserved
  8065. ---CDB---
  8066.  10h    BYTE    drive number
  8067.  11h    BYTE    ???
  8068.  12h 64 BYTEs    directory name
  8069.  52h    WORD    first directory cluster (0000h = root)
  8070.  
  8071. Format of Block Device Block:
  8072. Offset    Size    Description
  8073.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8074.  01h    BYTE    header block ID, "B" = block device block
  8075.  02h    WORD    length of block in paragraphs
  8076.  04h    WORD    segment address of next header block (0000h if last)
  8077.  06h    WORD    segment address of previous header block (0000h if first)
  8078.  08h    WORD    pointer to next TCB
  8079.  0Ah    WORD    pointer to previous TCB
  8080.  0Ch    WORD    pointer to associated TCB (if applicable)
  8081.  0Eh    WORD    reserved
  8082. ---BDB---
  8083.  10h    BYTE    logical drive
  8084.  11h    BYTE    unit passed to driver
  8085.  12h    WORD    sector size
  8086.  14h    BYTE    cluster mask
  8087.  15h    BYTE    cluster shift count
  8088.  16h    WORD    starting sector of first FAT
  8089.  18h    BYTE    number of FATs
  8090.  19h    WORD    number of root directories
  8091.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  8092.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  8093.  1Fh    BYTE    number of sectors in FAT
  8094.  20h    WORD    beginning root directory sector number
  8095.  22h    DWORD    device driver address
  8096.  26h    BYTE    media descriptor byte
  8097.  27h  5 BYTEs    ???
  8098.  2Ch    BYTE    flag: volume > 32MB
  8099.  2Dh    BYTE    ???
  8100.  2Eh    BYTE    number of sectors per cluster
  8101.  2Fh    WORD    number of clusters on device
  8102.  31h    WORD    number of free clusters (FFFFh = unknown)
  8103.  33h    WORD    root directory cluster number
  8104.  35h    WORD    pointer to alias/subst string
  8105.  37h    WORD    TCB segment address of owner (0000h = none)
  8106.  
  8107.  
  8108. Format of Record Lock Block:
  8109. Offset    Size    Description
  8110.  00h    BYTE    signature byte "H" if allocated from system memory pool
  8111.  01h    BYTE    header block ID, "R" = record lock block
  8112.  02h    WORD    length of block in paragraphs
  8113.  04h    WORD    segment address of next header block (0000h if last)
  8114.  06h    WORD    segment address of previous header block (0000h if first)
  8115.  08h    WORD    pointer to next TCB
  8116.  0Ah    WORD    pointer to previous TCB
  8117.  0Ch    WORD    pointer to associated TCB (if applicable)
  8118.  0Eh    WORD    reserved
  8119. ---RLB---
  8120.  10h    WORD    segment address of owner's PSP
  8121.  12h    WORD    segment address of Global File Block (see above)
  8122.  14h    WORD    segment address of owner's Task File Block (see above)
  8123.  16h    DWORD    file offset of locked region start
  8124.  1Ah    DWORD    length of locked region
  8125.  1Eh    WORD    owner's handle for file
  8126. --------O-D407-------------------------------
  8127. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  8128.     AH = 07h
  8129.     AL = events to monitor (see below)
  8130.     BX = number of timer ticks until timeout if AL bit 1 set
  8131.     CX = bitmap of IRQs to monitor if AL bit 2 set
  8132.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  8133.     DX = port to monitor if AL bit 3 set
  8134. Return: CF clear if successful
  8135.         AL = type of event which woke up task (see above)
  8136.         CX = IRQ (if any) which awakened task
  8137.         DX = port (if any) which awakened task
  8138.     CF set on error
  8139.         AX = error code (see INT 21/AH=59h)
  8140. Note:    a device driver may make this call with AL=00h, which indicates that
  8141.       the driver is responsible for setting and clearing the TCBWAIT field
  8142.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  8143.       reawaken it, set bit 1 (leaving other bits unchanged)
  8144. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  8145.  
  8146. Bitfields for events to monitor:
  8147.  bit 0    keystroke
  8148.  bit 1    timeout
  8149.  bit 2    IRQ
  8150.  bit 3    port access
  8151.  bit 7    return status of user poll routine (other bits ignored if set)
  8152. --------O-D410-------------------------------
  8153. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  8154.     AH = 10h
  8155.     AL = direction (00h return to V86 mode, 01h enter native mode)
  8156.     CX = length in bytes of Native Context Area ( >=1024 )
  8157.     DX = segment of Native Context Area
  8158. Return: CF clear if successful
  8159.         running in desired mode at instruction following INT D4 call
  8160.         all segment registers converted to appropriate selectors/segments
  8161.     CF set on error
  8162.         AX = error code (see INT 21/AH=59h)
  8163. Note:    MS-DOS calls are available in protected mode
  8164. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  8165. --------O-D411-------------------------------
  8166. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  8167.     AH = 11h
  8168.     EBX = block length in bytes
  8169. Return: CF clear if successful
  8170.         EBX = number of bytes actually allocated
  8171.         ES = selector for allocated block
  8172.     CF set on error
  8173.         AX = error code (see INT 21/AH=59h)
  8174. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8175.       system by The Software Link, Inc.
  8176. Note:    memory must be released before program terminates
  8177. SeeAlso: AH=10h,AH=12h,INT 38
  8178. --------O-D412-------------------------------
  8179. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  8180.     AH = 12h
  8181.     ES = selector for block to free
  8182. Return: CF clear if successful
  8183.     CF set on error
  8184.         AX = error code (see INT 21/AH=59h)
  8185. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  8186. --------O-D413-------------------------------
  8187. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  8188.     AH = 13h
  8189.     AL = type of alias selector (00h data, 01h stack, 02h code)
  8190.     BX = selector
  8191. Return: CF clear if successful
  8192.         AX = new selector or 0000h if BX selector not found
  8193.     CF set on error
  8194.         AX = error code (see INT 21/AH=59h)
  8195. SeeAlso: AH=11h,AH=12h
  8196. --------O-D416-------------------------------
  8197. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  8198.     AH = 16h
  8199.     AL = function (00h clear, 01h set reservation)
  8200.     CX = IRQ number
  8201. Return: AX = status
  8202.         (0000h successful, 0001h currently reserved by another task)
  8203. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  8204. --------O-D419-------------------------------
  8205. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  8206.     AH = 19h
  8207. Return: BX = caller's task ID
  8208. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8209.       system by The Software Link, Inc.
  8210. SeeAlso: AH=1Dh,AH=1Eh
  8211. --------O-D41A-------------------------------
  8212. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  8213.     AH = 1Ah
  8214.     AL = subfunction (00h read, 01h set, 02h get and set)
  8215.     BX = task ID (FFFFh for current task)
  8216.     CL = new priority value
  8217. Return: CF clear if successful
  8218.         CL = current priority value
  8219.     CF set on error
  8220.         AX = error code (see INT 21/AH=59h)
  8221. SeeAlso: AH=1Bh,AH=1Ch
  8222. --------O-D41B-------------------------------
  8223. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  8224.     AH = 1Bh
  8225.     AL = subfunction (00h read, 01h set, 02h get and set)
  8226.     BX = task ID (FFFFh for current task) (see AH=19h)
  8227.     CL = new time slice value
  8228. Return: CF clear if successful
  8229.         CL = current time slice value
  8230.     CF set on error
  8231.         AX = error code (see INT 21/AH=59h)
  8232. SeeAlso: AH=1Ah,AH=1Ch
  8233. --------O-D41C-------------------------------
  8234. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  8235.     AH = 1Ch
  8236.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  8237.     BX = task ID (FFFFh for current task)
  8238. Return: CF clear if successful
  8239.         CL = current keyboard state
  8240.     CF set on error
  8241.         AX = error code (INT 21/AH=59h)
  8242. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8243.       system by The Software Link, Inc.
  8244. SeeAlso: AH=1Ah,AH=1Bh
  8245. --------O-D41D-------------------------------
  8246. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  8247.     AH = 1Dh
  8248.     BX = task ID (FFFFh for current task) (see AH=19h)
  8249.     ES:DI -> buffer for program name (see below)
  8250. Return: CF clear if successful
  8251.         ES:DI buffer filled
  8252.     CF set on error
  8253.         AX = error code (see INT 21/AH=59h)
  8254. SeeAlso: AH=19h,AH=1Eh
  8255.  
  8256. Format of buffer:
  8257. Offset    Size    Description
  8258.  00h  8 BYTEs    filename
  8259.  08h  3 BYTEs    extension
  8260. --------O-D41E-------------------------------
  8261. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  8262.     AH = 1Eh
  8263.     BX = task ID (FFFFh for current task)
  8264.     ES:DI -> 4-byte buffer for username
  8265. Return: CF clear if successful
  8266.         CL = security class
  8267.         20h (' ') none
  8268.         41h-5Ah ('A'-'Z') security level
  8269.         ES:DI buffer filled
  8270.     CF set on error
  8271.         AX = error code (see INT 21/AH=59h)
  8272. SeeAlso: AH=19h,AH=1Dh
  8273. --------O-D41F-------------------------------
  8274. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  8275.     AH = 1Fh
  8276.     BX = task ID (FFFFh for current task) (see AH=19h)
  8277. Return: CF clear if successful
  8278.         CX = start segment of task
  8279.         DX = ending segment of task
  8280.     CF set on error
  8281.         AX = error code (see INT 21/AH=59h)
  8282. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8283.       system by The Software Link, Inc.
  8284. SeeAlso: AH=2Dh
  8285. --------O-D420-------------------------------
  8286. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  8287.     AH = 20h
  8288.     BX = task ID (FFFFh for current task) (see AH=19h)
  8289. Return: CF clear if successful
  8290.         CX = port number (0000h if none)
  8291.         DI:SI = baudrate (if CX nonzero)
  8292.     CF set on error
  8293.         AX = error code (see INT 21/AH=59h)
  8294. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8295.       system by The Software Link, Inc.
  8296. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  8297. --------O-D421-------------------------------
  8298. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  8299.     AH = 21h
  8300.     BX = task ID (FFFFh for current task) (see AH=19h)
  8301. Return: CF clear if successful
  8302.         AX = ASCII percentage of System Memory Pool used
  8303.         (AH = tens digit, AL = ones digit)
  8304.         DS,SI destroyed
  8305.     CF set on error
  8306.         AX = error code (see INT 21/AH=59h)
  8307. SeeAlso: AH=22h
  8308. --------O-D422-------------------------------
  8309. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  8310.     AH = 22h
  8311.     DS:SI -> addtask data structure (see below)
  8312. Return: CF clear if successful
  8313.         ES = segment address of the new task's TCB data structure
  8314.     CF set on error
  8315.         AX = error code (see below)
  8316. SeeAlso: AH=21h
  8317.  
  8318. Values for error code:
  8319.  08h    insufficient memory
  8320.  0Bh    invalid addtask structure format
  8321.  12h    insufficient available space in system memory pool
  8322.  1Fh    general failure
  8323.  55h    already allocated
  8324.  57h    if task already in use or invalid parameter
  8325.  
  8326. Format of addtask data structure:
  8327. Offset    Size    Description
  8328.  00h    WORD    task size in KB (min 16KB)
  8329.  02h    WORD    task ID (0000h for automatic selection)
  8330.  04h    BYTE    task class (' ' or 'A'-'Z')
  8331.  05h    DWORD    -> ASCIZ name of task startup batchfile
  8332.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  8333.  0Dh    WORD    task port
  8334.  0Fh    DWORD    task baud rate
  8335.  13h    DWORD    (return) total extended memory
  8336.  17h    DWORD    (return) number of 4K extended memory pages allocated
  8337.  1Bh    WORD    (return) paragraphs of system memory pool allocated
  8338.  1Dh    WORD    (return) system memory pool size in paragraphs
  8339.  1Fh    WORD    (return) ASCII task percentage of system memory pool
  8340.  21h  3 BYTEs    reserved
  8341. --------O-D423-------------------------------
  8342. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  8343.     AH = 23h
  8344.     BX = task ID (FFFFh for current task)
  8345.     DS:SI -> entry point of the new Device Driver Terminal
  8346. Return: CF clear if successful
  8347.     CF set on error
  8348.         AX = error code (see INT 21/AH=59h)
  8349. --------O-D424-------------------------------
  8350. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  8351.     AH = 24h
  8352. Return: DS:DX -> '$'-terminated string containing the serial number
  8353. --------O-D425-------------------------------
  8354. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  8355.     AH = 25h
  8356.     DX = driver's CS value
  8357. Return: AX = segment address of driver in system memory pool
  8358.         (0000h if the driver is not within the system memory pool)
  8359. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8360.       system by The Software Link, Inc.
  8361. --------O-D426-------------------------------
  8362. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  8363.     AH = 26h
  8364. Return: DX = segment/selector of the System Control Block (see AH=02h)
  8365. Note:    this function supersedes AH=02h
  8366. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  8367. --------O-D427-------------------------------
  8368. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  8369.     AH = 27h
  8370.     BX = task ID (FFFFh if current task) (see AH=19h)
  8371. Return: CF clear if successful
  8372.         DX = segment/selector for the Task Control Block (see AH=04h)
  8373.     CF set on error
  8374.         AX = error code (INT 21/AH=59h)
  8375. Note:    this function supersedes AH=04h
  8376. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  8377. --------O-D428-------------------------------
  8378. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  8379.     AH = 28h
  8380.     BX = offset into control block at which to start reading
  8381.     CX = number of bytes to read
  8382.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8383.     ES:DI -> buffer for data
  8384. Return: CF clear if successful
  8385.     CF set on error
  8386.         AX = error code (see also INT 21/AH=59h)
  8387.         05h access denied due to an invalid segment/selector
  8388. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  8389. --------O-D429-------------------------------
  8390. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  8391.     AH = 29h
  8392.     BX = offset into control block at which to start writing
  8393.     CX = number of bytes to write
  8394.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8395.     DS:SI -> buffer containing data to be written
  8396. Return: CF clear if successful
  8397.     CF set on errro
  8398.         AX = error code (see also INT 21/AH=59h)
  8399.         05h access denied due to an invalid segment/selector
  8400. Note:     this function performs no bounds checking
  8401. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8402.       system by The Software Link, Inc.
  8403. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  8404. --------O-D42A-------------------------------
  8405. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  8406.     AH = 2Ah
  8407.     BX = offset into control block at which to start swap
  8408.     CX = number of bytes to swap
  8409.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8410.     DS:SI -> buffer containing new data and to receive current data
  8411. Return: CF clear if successful
  8412.     CF set on error
  8413.         AX = error code (see also INT 21/AH=59h)
  8414.         05h access denied due to an invalid segment/selector
  8415. Note:    the interrupts are disabled during the swap to prevent corruption
  8416. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  8417. --------O-D42C-------------------------------
  8418. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  8419.     AH = 2Ch
  8420.     AL = function
  8421.         00h set spooler timeout
  8422.         CX = timout value in seconds
  8423.         01h get spooler timeout
  8424.         Return: CX = current timeout in seconds
  8425.         02h get spooler parameters
  8426.         Return: CH = priority (00h-09h)
  8427.             CL = disposition (d, h, i, n, s)
  8428.             SI = class (a - z)
  8429.         03h set spooler parameters
  8430.         CH = priority (00h-09h)
  8431.         CL = disposition (d, h, i, n, s)
  8432.         SI = class (a - z)
  8433.         BX = task ID (FFFFh for current task)
  8434.         DX = LPT number
  8435. Return: CF clear if successful
  8436.     CF set on error
  8437.         AX = error code (see INT 21/AH=59h)
  8438. SeeAlso: AH=00h,AH=02h,AH=03h
  8439. --------O-D42D-------------------------------
  8440. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  8441.     AH = 2Dh
  8442. Return: DX = maximum task size in paragraphs
  8443.     BX = start address of task space
  8444. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8445.       system by The Software Link, Inc.
  8446. SeeAlso: AH=1Fh,AH=22h
  8447. --------r-D5---------------------------------
  8448. INT D5 - IBM ROM BASIC - used while in interpreter
  8449. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8450.     BASIC.COM/BASICA.COM do not restore vector on termination
  8451. --------r-D5---------------------------------
  8452. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8453. --------r-D6---------------------------------
  8454. INT D6 - IBM ROM BASIC - used while in interpreter
  8455. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8456.     BASIC.COM/BASICA.COM do not restore vector on termination
  8457. --------r-D6---------------------------------
  8458. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8459. --------r-D7---------------------------------
  8460. INT D7 - IBM ROM BASIC - used while in interpreter
  8461. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8462.     BASIC.COM/BASICA.COM do not restore vector on termination
  8463. --------r-D7---------------------------------
  8464. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8465. --------r-D8---------------------------------
  8466. INT D8 - IBM ROM BASIC - used while in interpreter
  8467. Notes:    called by ROM BASIC
  8468.     BASIC.COM/BASICA.COM do not restore vector on termination
  8469. --------r-D8---------------------------------
  8470. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8471. --------H-D8---------------------------------
  8472. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  8473. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  8474.       but may be directed via a commandline switch to use any range
  8475.       starting at a multiple of 8 between 78h and E0h
  8476. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  8477. SeeAlso: INT D9"Screen Thief"
  8478. --------r-D9---------------------------------
  8479. INT D9 - IBM ROM BASIC - used while in interpreter
  8480. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8481.     BASIC.COM/BASICA.COM do not restore vector on termination
  8482. --------r-D9---------------------------------
  8483. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8484. --------H-D9---------------------------------
  8485. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  8486. Note:    (see INT D8"Screen Thief")
  8487. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  8488. --------r-DA---------------------------------
  8489. INT DA - IBM ROM BASIC - used while in interpreter
  8490. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8491.     BASIC.COM/BASICA.COM do not restore vector on termination
  8492. --------r-DA---------------------------------
  8493. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8494. --------H-DA---------------------------------
  8495. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  8496. Note:    (see INT D8"Screen Thief")
  8497. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  8498. --------r-DB---------------------------------
  8499. INT DB - IBM ROM BASIC - used while in interpreter
  8500. Notes:    called by ROM BASIC
  8501.     BASIC.COM/BASICA.COM do not restore vector on termination
  8502. --------r-DB---------------------------------
  8503. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8504. --------H-DB---------------------------------
  8505. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  8506. Note:    (see INT D8"Screen Thief")
  8507. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  8508. --------u-DC---------------------------------
  8509. INT DC - PC/370 v4.1- - API
  8510. SeeAlso: INT 60"PC/370"
  8511. --------r-DC---------------------------------
  8512. INT DC - IBM ROM BASIC - used while in interpreter
  8513. Notes:    called by ROM BASIC
  8514.     BASIC.COM/BASICA.COM do not restore vector on termination
  8515. --------r-DC---------------------------------
  8516. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8517. --------H-DC---------------------------------
  8518. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  8519. Note:    (see INT D8"Screen Thief")
  8520. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  8521. --------r-DD---------------------------------
  8522. INT DD - IBM ROM BASIC - used while in interpreter
  8523. Notes:    called by ROM BASIC
  8524.     BASIC.COM/BASICA.COM do not restore vector on termination
  8525. --------r-DD---------------------------------
  8526. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  8527.     BX = where to place keystrokes
  8528.         FFFFh insert before current buffer contents
  8529.         0000h replace current contents
  8530.         0001h insert after current contents
  8531.     CX = number of keystroke events to insert
  8532.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  8533.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  8534.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  8535. SeeAlso: INT 16/AH=05h
  8536. --------H-DD---------------------------------
  8537. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  8538. Note:    (see INT D8"Screen Thief")
  8539. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  8540. --------r-DE---------------------------------
  8541. INT DE - IBM ROM BASIC - used while in interpreter
  8542. Notes:    called by ROM BASIC
  8543.     BASIC.COM/BASICA.COM do not restore vector on termination
  8544. --------r-DE---------------------------------
  8545. INT DE - APL*PLUS/PC - ???
  8546. Note:    appears to be the same as INT 16
  8547. --------H-DE---------------------------------
  8548. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  8549. Note:    (see INT D8"Screen Thief")
  8550. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  8551. --------b-DF---------------------------------
  8552. INT DF - Victor 9000 - SuperBIOS
  8553. --------r-DF---------------------------------
  8554. INT DF - IBM ROM BASIC - used while in interpreter
  8555. Notes:    called by ROM BASIC
  8556.     BASIC.COM/BASICA.COM do not restore vector on termination
  8557. --------r-DF---------------------------------
  8558. INT DF - APL*PLUS/PC - SAME AS INT 10
  8559. SeeAlso: INT 10
  8560. --------H-DF---------------------------------
  8561. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  8562. Note:    (see INT D8"Screen Thief")
  8563. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  8564. --------r-E0---------------------------------
  8565. INT E0 - IBM ROM BASIC - used while in interpreter
  8566. Notes:    called by ROM BASIC
  8567.     BASIC.COM/BASICA.COM do not restore vector on termination
  8568. --------r-E0---------------------------------
  8569. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  8570. SeeAlso: INT CF"APL"
  8571. --------v-E0---------------------------------
  8572. INT E0 - VIRUS - "Micro-128" - ???
  8573. Note:    Micro-128 also overwrites the upper half of the interrupt table
  8574. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  8575. --------O-E0---------------------------------
  8576. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  8577.     CL = function number
  8578.     DS,DX = parameters
  8579. Return: as appropriate for function
  8580. Notes:    several functions are covered in more detail in following entries
  8581.     most of these calls are also supported by Digital Research's DOS Plus
  8582.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  8583.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  8584. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  8585.  
  8586. Values for function number:
  8587.  00h    terminate calling process (see also INT 21/AH=00h)
  8588.  01h    read a character
  8589.  02h    write character to default console (see also INT 21/AH=02h)
  8590.  03h    read character from default AUX (see also INT 21/AH=03h)
  8591.  04h    write character to default AUX (see also INT 21/AH=04h)
  8592.  05h    write character to default list device (see also INT 21/AH=05h)
  8593.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  8594.  07h    return default AUX input status
  8595.  08h    return default AUX output status
  8596.  09h    write string to default console (see also INT 21/AH=09h)
  8597.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  8598.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  8599.  0Ch    get BDOS release ID
  8600.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  8601.  0Eh    set default drive (see also INT 21/AH=0Eh)
  8602.  0Fh    open file via FCB (see also INT 21/AH=0Fh)
  8603.  10h    close file via FCB (see also INT 21/AH=10h)
  8604.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  8605.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  8606.  13h    delete file via FCB (see also INT 21/AH=13h)
  8607.  14h    sequential read via FCB (see also INT 21/AH=14h)
  8608.  15h    sequential write via FCB (see also INT 21/AH=15h)
  8609.  16h    create file via FCB (see also INT 21/AH=16h)
  8610.  17h    rename file via FCB (see also INT 21/AH=17h)
  8611.  18h    get bit map of logged drives
  8612.  19h    get default drive (see also INT 21/AH=19h)
  8613.  1Ah    set DMA address offset
  8614.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  8615.  1Ch    set default drive to read-only
  8616.  1Dh    get bit map of read-only drives
  8617.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  8618.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  8619.  20h    get/set default user number
  8620.  21h    read random record via FCB (see also INT 21/AH=21h)
  8621.  22h    write random record via FCB (see also INT 21/AH=22h)
  8622.  23h    compute file size with FCB (see also INT 21/AH=23h)
  8623.  24h    get FCB random record number (see also INT 21/AH=24h)
  8624.  25h    reset specified drives
  8625.  26h    access specified drives (not in DR DOS Plus v2.1)
  8626.  27h    free specified drives
  8627.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  8628.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  8629.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  8630.  2Ch    set BDOS multisector count
  8631.  2Dh    set BDOS error mode
  8632.  2Eh    get free space on disk
  8633.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  8634.  30h    flush write-deferred buffers
  8635.  31h    get/set system variable (DOS Plus v2.1)
  8636.  32h    call BIOS (XIOS) character routine (see below)
  8637.  33h    set DMA address segment
  8638.  34h    get DMA buffer address
  8639.  35h    CP/M-86 allocate maximum memory
  8640.  36h    allocate maximum memory at specified segment
  8641.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  8642.  38h    allocate memory at specified segment
  8643.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  8644.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  8645.  3Bh    load .CMD file into memory
  8646.  3Ch    (DOS Plus v2.1) call RSX program
  8647.  40h    (DR-NET) log on a server
  8648.  41h    (DR-NET) log off a server
  8649.  42h    (DR-NET) send a message
  8650.  43h    (DR-NET) receive a message
  8651.  44h    (DR-NET) get network status
  8652.  45h    (DR-NET) get requestor configuration table
  8653.  46h    (DR-NET) set compatibility attributes
  8654.  47h    (DR-NET) get server configuration table
  8655.  48h    (DR-NET) set network error mode
  8656.  49h    (DR-NET) attach network
  8657.  4Ah    (DR-NET) detach network
  8658.  4Bh    (DR-NET) set default password
  8659.  4Ch    (DR-NET) get-set long timeout
  8660.  4Dh    (DR-NET) get parameter table
  8661.  50h    (DR-NET) get network information
  8662.  53h    get current time (see also INT 21/AH=2Ch)
  8663.  54h    set current time (see also INT 21/AH=2Dh)
  8664.  55h    get binary system date (see also INT 21/AH=2Ah)
  8665.  56h    set system date (see also INT 21/AH=2Bh)
  8666.  57h    allocate system flag
  8667.  58h    deallocate system flag
  8668.  59h    reserve memory in global area
  8669.  5Ah    lock physical drive
  8670.  5Bh    unlock physical drive
  8671.  5Ch    search path for executable file
  8672.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  8673.  5Eh    get/set process exit code
  8674.  5Fh    set country information
  8675.  60h    get country information
  8676.  63h    truncate FCB file (see also INT 21/AH=28h)
  8677.  64h    create/update directory label
  8678.  65h    get directory label
  8679.  66h    get FCB date stamp and password mode
  8680.  67h    write extended FCB
  8681.  68h    set system date and time
  8682.  69h    get system date and time in binary
  8683.  6Ah    establish password for file access
  8684.  6Bh    get OS serial number
  8685.  6Ch    (DOS Plus v2.1) get/set program return code
  8686.  6Dh    get/set console mode
  8687.  6Eh    get/set string delimiter
  8688.  6Fh    write block to default console
  8689.  70h    write block to default list device
  8690.  71h    execute DOS-compatible function
  8691.  74h    set FCB time and date stamps
  8692.  80h    allocate memory
  8693.  82h    deallocate memory
  8694.  83h    poll I/O device
  8695.  84h    wait on system flag
  8696.  85h    set system flag
  8697.  86h    create message queue
  8698.  87h    open message queue
  8699.  88h    delete message queue
  8700.  89h    read from message queue
  8701.  8Ah    conditionally read from message queue
  8702.  8Bh    write to message queue
  8703.  8Ch    conditionally write to message queue
  8704.  8Dh    delay calling process
  8705.  8Eh    call process dispatcher (yield CPU)
  8706.  8Fh    terminate calling process (same as function 00h)
  8707.  90h    create a process
  8708.  91h    set calling process' priority
  8709.  92h    attach to default console
  8710.  93h    detach from default console
  8711.  95h    assign default console to process
  8712.  96h    interpret and execute commandline
  8713.  97h    resident procedure library
  8714.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  8715.  99h    return default console
  8716.  9Ah    get address of system data (SYSDAT)
  8717.  9Bh    get system time and date
  8718.  9Ch    return calling process' descriptor
  8719.  9Dh    terminate process by name or PD address
  8720.  9Eh    attach to default list device
  8721.  9Fh    detach from default list device
  8722.  A0h    select default list device
  8723.  A1h    conditionally attach to default list device
  8724.  A2h    conditionally attach to default console
  8725.  A3h    get OS version number
  8726.  A4h    get default list device
  8727.  A5h    attach to default AUX
  8728.  A6h    detach from default AUX
  8729.  A7h    conditionally attach to default AUX
  8730.  A8h    set default AUX
  8731.  A9h    return default AUX
  8732.  ACh    read block from default AUX
  8733.  ADh    (DOS Plus v2.1) write block to default AUX
  8734.  B0h    configure default AUX
  8735.  B1h    get/set device control parameters
  8736.  B2h    send Break through default AUX
  8737.  B3h    allocate physical memory
  8738.  B4h    free physical memory
  8739.  B5h    map physical memory
  8740.  B6h    nondestructive message queue read
  8741.  B7h    timed wait on system flag
  8742.  B8h    get/set I/O port mapping
  8743.  B9h    set list device timeout
  8744.  BAh    set AUX timeout value
  8745.  BBh    execute XIOS service
  8746.  BDh    (DR Multiuser DOS) delay
  8747.  FFh    return 80386 to native mode
  8748.  
  8749. Values for DOS Plus v2.1 XIOS functions:
  8750.  00h    terminate program
  8751.  01h    ???
  8752.  02h    check for console input status
  8753.  03h    read character from console
  8754.  04h    write character to console
  8755.  05h    write character to list device
  8756.  06h    write character to auxiliary device
  8757.  07h    read cahracter from auxiliary device
  8758.  0Fh    get list device status
  8759.  10h-14h reserved
  8760.  15h    device initialization
  8761.  16h    check console output status
  8762.  17h-7Fh reserved
  8763. ---BBC Acorn---
  8764.  80h    get XIOS version
  8765.  81h    get Tube semaphore
  8766.  82h    release Tube semaphore
  8767.  83h    select text/graphics
  8768.  84h    update B&W graphics rectangle
  8769.  85h    update color graphics rectangle
  8770.  86h    get/release/update mouse
  8771.  87h    get system error info
  8772.  88h    entry in CLOCK called by WatchDog RSP
  8773.  89h    BBC OSBYTE function
  8774.  8Ah    BBC OSWORD function
  8775.  
  8776. DR Multiuser DOS Error Return Codes:
  8777.  00h no error
  8778.  01h system call not implmented
  8779.  02h illegal system call number
  8780.  03h cannot find memory
  8781.  04h illegal flag number
  8782.  05h flag overrun
  8783.  06h flag underrun
  8784.  07h no unused Queue Descriptors
  8785.  08h no free queue buffer
  8786.  09h cannot find queue
  8787.  0Ah queue in use
  8788.  0Ch no free Process Descriptors
  8789.  0Dh no queue access
  8790.  0Eh empty queue
  8791.  0Fh full queue
  8792.  10h CLI queue missing
  8793.  11h no 8087 in system
  8794.  12h no unused Memory Descriptors
  8795.  13h illegal console number
  8796.  14h no Process Descriptor match
  8797.  15h no console match
  8798.  16h no CLI process
  8799.  17h illegal disk number
  8800.  18h illegal filename
  8801.  19h illegal filetype
  8802.  1Ah character not ready
  8803.  1Bh illegal Memory Descriptor
  8804.  1Ch bad return from BDOS load
  8805.  1Dh bad return from BDOS read
  8806.  1Eh bad return from BDOS open
  8807.  1Fh null command
  8808.  20h not owner of resource
  8809.  21h no CSEG in load file
  8810.  22h process Descriptor exists on Thread Root
  8811.  23h could not terminate process
  8812.  24h cannot attach to process
  8813.  25h illegal list device number
  8814.  26h illegal password
  8815.  28h external termination occurred
  8816.  29h fixup error upon load
  8817.  2Ah flag set ignored
  8818.  2Bh illegal auxilliary device number
  8819. --------O-E0----CL03-------------------------
  8820. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  8821.     CL = 03h
  8822. Return: AL = ASCII character
  8823. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  8824.       input device (AUXn:); control is not returned to the calling
  8825.       process until a character has been read.
  8826.     if another process owns AUX, this call blocks until the device becomes
  8827.       available
  8828. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  8829. --------O-E0----CL04-------------------------
  8830. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  8831.     CL = 04h
  8832.     DL = ASCII character
  8833. Return: nothing
  8834. Note:    if another process owns AUX, this call blocks until the device becomes
  8835.       available
  8836. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  8837. --------O-E0----CL07-------------------------
  8838. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  8839.     CL = 07h
  8840. Return: AL = status
  8841.         00h not ready
  8842.         FFh character available
  8843. Desc:    determine whether the current AUX device has input available
  8844. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  8845. --------O-E0----CL08-------------------------
  8846. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  8847.     CL = 08h
  8848. Return: AL = status
  8849.         00h not ready
  8850.         FFh ready for output
  8851. Desc:    determine whether the current AUX device is able to accept more output
  8852. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  8853. --------O-E0----CL59-------------------------
  8854. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  8855.     CL = 59h
  8856.     DX = size in bytes
  8857. Return: AX = FFFFh if failed
  8858.     AX = other if successful
  8859.         ES:BX -> reserved memory
  8860. --------O-E0----CL86-------------------------
  8861. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  8862.     CL = 86h
  8863.     DS:DX -> queue descriptor (see below)
  8864. Return: AX = status
  8865.         0000h success
  8866.         FFFFh failure
  8867.     CX = error code
  8868. SeeAlso: INT E0/CL=87h
  8869.  
  8870. Format of queue descriptor:
  8871. Offset    Size    Description
  8872.  00h  2 WORDs    internal use, initialize to zeros
  8873.  04h    WORD    flags
  8874.  06h  8 BYTEs    queue name
  8875.  0Eh    WORD    length of message
  8876.  10h    WORD    number of messages
  8877.  12h  4 WORDs    internal use, initialize to zeros
  8878.  1Ah    WORD    offset in system area of buffer for messages
  8879. --------O-E0----CL87-------------------------
  8880. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  8881.     CL = 87h
  8882.     DS:DX -> queue parameter block (see below)
  8883. Return: AX = status
  8884.         0000h success
  8885.         FFFFh failure
  8886.     CX = error code
  8887. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  8888.  
  8889. Format of queue parameter block:
  8890. Offset    Size    Description
  8891.  00h    WORD    internal use, initialize to zero
  8892.  02h    WORD    queue ID (set by INT E0/CL=87h)
  8893.  04h    WORD    internal use, initialize to zero
  8894.  06h    WORD    offset of queue message buffer
  8895.  08h  8 BYTEs    queue name
  8896. --------O-E0----CL89-------------------------
  8897. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  8898.     CL = 89h
  8899.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8900. Return: AX = status
  8901.         0000h success
  8902.         FFFFh failure
  8903.     CX = error code
  8904. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  8905. --------O-E0----CL8A-------------------------
  8906. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  8907.     CL = 8Ah
  8908.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8909. Return: AX = status
  8910.         0000h success
  8911.         FFFFh failure
  8912.     CX = error code
  8913. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  8914. --------O-E0----CL8B-------------------------
  8915. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  8916.     CL = 8Bh
  8917.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8918. Return: AX = status
  8919.         0000h success
  8920.         FFFFh failure
  8921.     CX = error code
  8922. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  8923. --------O-E0----CL8C-------------------------
  8924. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  8925.     CL = 8Ch
  8926.     DS:DX -> queue parameter block (see INT E0/CL=87h)
  8927. Return: AX = status
  8928.         0000h success
  8929.         FFFFh failure
  8930.     CX = error code
  8931. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  8932. --------O-E0----CL8E-------------------------
  8933. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  8934.     CL = 8Eh
  8935.     DX = FFFFh (optional) to force dispatch
  8936. Return: nothing
  8937. Desc:    allow other processes of the same or higher priority to run if they
  8938.       are ready
  8939. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  8940. SeeAlso: INT E0/CL=91h
  8941. --------O-E0----CL91-------------------------
  8942. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  8943.     CL = 91h
  8944.     DL = new priority (00h highest to FFh lowest)
  8945. Note:    sets priority of calling process; transient processes are initialized
  8946.       to priority C8h
  8947. SeeAlso: INT E0/CL=8Eh
  8948. --------O-E0----CL93-------------------------
  8949. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  8950.     CL = 93h
  8951. Return: AX = status
  8952.         0000h successfully detached
  8953.         FFFFh detach failed
  8954. --------O-E0----CLA5-------------------------
  8955. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  8956.     CL = A5h
  8957. Desc:    attaches the default auxiliary device to the calling process unless
  8958.       it is already attached to another process, in which case the call
  8959.       blocks until the device becomes available
  8960. Note:    this call should be used before attempting to read or write from
  8961.       the AUX device; however, the I/O calls internally call this function
  8962.       to ensure device ownership
  8963. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  8964. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  8965. --------O-E0----CLA6-------------------------
  8966. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  8967.     CL = A6h
  8968. Return: AX = status
  8969.         0000h successfully detached
  8970.         FFFFh detach failed
  8971.     CX = error code
  8972. SeeAlso: INT E0/CL=A5h,INT E0/CL=A7h
  8973. --------O-E0----CLA7-------------------------
  8974. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  8975.     CL = A7h
  8976. Return: AX = status
  8977.         0000h attached
  8978.         FFFFh unable to attach
  8979. Desc:    attaches the default auxiliary device to the calling process if it is
  8980.       available
  8981. Note:    does not block if the device is already in use
  8982. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  8983. --------O-E0----CLA8-------------------------
  8984. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  8985.     CL = A8h
  8986.     DL = auxiliary device number
  8987. Return: AX = status
  8988.         0000h successful
  8989.         FFFFh failed
  8990.     CX = error code
  8991. Desc:    specify which physical device will become AUX
  8992. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  8993. --------O-E0----CLA9-------------------------
  8994. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  8995.     CL = A9h
  8996. Return: AL = current default auxiliary device number
  8997. Desc:    determine which physical device is currently AUX
  8998. SeeAlso: INT E0/CL=A8h
  8999. --------O-E0----CLAC-------------------------
  9000. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  9001.     CL = ACh
  9002.     DS:DX -> character control block (CHCB) (see below)
  9003. Return: AX = number of characters read
  9004. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  9005.       until the buffer is full or the device is no longer ready
  9006. Notes:    if the device is initially not ready, blocks until at least one
  9007.       character has been read
  9008.     if another process owns AUX, this call blocks until the device becomes
  9009.       available
  9010. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  9011.  
  9012. Format of character control block (CHCB):
  9013. Offset    Size    Description
  9014.  00h    DWORD    pointer to character buffer
  9015.  04h    WORD    length of character buffer
  9016. --------O-E0----CLAD-------------------------
  9017. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  9018.     CL = ADh
  9019.     DS:DX -> character control block (see INT E0/CL=ACh)
  9020. Return: AX = number of characters written
  9021. Note:    does not return until at least one character has been written
  9022. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  9023. --------O-E0----CLB0-------------------------
  9024. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  9025.     CL = B0h
  9026.     DX:DX -> AUX device parameter block (see below)
  9027. Return: AX = status
  9028.         0000h successful
  9029.         parameter block updated
  9030.         FFFFh failed
  9031.         CX = error code
  9032. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  9033.  
  9034. Format of AUX device parameter block:
  9035. Offset    Size    Description
  9036.  00h    BYTE    function (00h get, 01h set)
  9037.  01h    BYTE    baud rate (see below) FFh = don't change/unknown
  9038.  02h    BYTE    parity (see below)
  9039.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  9040.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  9041.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  9042.         FFh unknown/don't change)
  9043.  06h    BYTE    XON character, FFh unknown/don't change
  9044.  07h    BYTE    XOFF character, FFh unknown/don't change
  9045.  
  9046. Values for parity:
  9047.  00h    none
  9048.  01h    odd
  9049.  02h    none
  9050.  03h    even
  9051.  04h    stick parity bit
  9052.  FFh    don't change/unknown
  9053.  
  9054. Values for baud rate:
  9055.  00h    50 baud
  9056.  01h    62.5 baud
  9057.  02h    75 baud
  9058.  03h    110 baud
  9059.  04h    134.5 baud
  9060.  05h    150 baud
  9061.  06h    200 baud
  9062.  07h    300 baud
  9063.  08h    600 baud
  9064.  09h    1200 baud
  9065.  0Ah    1800 baud
  9066.  0Bh    2000 baud
  9067.  0Ch    2400 baud
  9068.  0Dh    3600 baud
  9069.  0Eh    4800 baud
  9070.  0Fh    7200 baud
  9071.  10h    9600 baud
  9072.  11h    19200 baud
  9073.  12h    38400 baud
  9074.  13h    56000 baud
  9075.  14h    76800 baud
  9076.  15h    115200 baud
  9077. --------O-E0----CLB1-------------------------
  9078. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  9079.     CL = B1h
  9080.     DS:DX -> AUX device control block (see below)
  9081. Return: AX = status
  9082.         0000h successful
  9083.         control block updated
  9084.         FFFFh failed
  9085.         CX = error code
  9086. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  9087.  
  9088. Format of AUX device control block:
  9089. Offset    Size    Description
  9090.  00h    BYTE    function (00h get, 01h set)
  9091.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  9092.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  9093.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  9094.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  9095.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  9096.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  9097. --------O-E0----CLB2-------------------------
  9098. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  9099.     CL = B2h
  9100.     DX = duration of break in system ticks (0001h-FFFFh)
  9101. Return: AX = status
  9102.         0000h successful
  9103.         break signal completed
  9104.         FFFFh failed
  9105.         CX = error code
  9106. Note:    if the AUX device is currently owned by another process, this call will
  9107.       block until the device becomes available
  9108. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  9109. --------O-E0----CLBD-------------------------
  9110. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  9111.     CL = BDh
  9112.     DX = delay in system ticks
  9113. Return: after the delay elapses
  9114. Notes:    the length of a system tick is installation-dependent (typically
  9115.       1/50 or 1/60 second); the length may be determined by reading the
  9116.       TICKSPERSEC value from the system data segment
  9117.     the actual delay before the process is rescheduled to run may be up to
  9118.       one tick longer than requested; the delay between rescheduling and
  9119.       actual execution cannot be predicted if higher-priority processes
  9120.       are awaiting a turn at the CPU
  9121. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  9122. --------r-E1---------------------------------
  9123. INT E1 - IBM ROM BASIC - used while in interpreter
  9124. Notes:    called by ROM BASIC
  9125.     BASIC.COM/BASICA.COM do not restore vector on termination
  9126. --------N-E1---------------------------------
  9127. INT E1 - PC Cluster Disk Server Information
  9128. SeeAlso: INT E2
  9129. --------r-E2---------------------------------
  9130. INT E2 - IBM ROM BASIC - used while in interpreter
  9131. Notes:    called by ROM BASIC
  9132.     BASIC.COM/BASICA.COM do not restore vector on termination
  9133. --------N-E2---------------------------------
  9134. INT E2 - PC Cluster Program
  9135. --------r-E3---------------------------------
  9136. INT E3 - IBM ROM BASIC - used while in interpreter
  9137. Notes:    called by ROM BASIC
  9138.     BASIC.COM/BASICA.COM do not restore vector on termination
  9139. --------r-E40005-----------------------------
  9140. INT E4 - Logitech Modula v2.0 - MonitorEntry
  9141.     AX = 0005h
  9142.     BX = priority
  9143. SeeAlso: AX=0006h
  9144. --------r-E40006-----------------------------
  9145. INT E4 - Logitech Modula v2.0 - MonitorExit
  9146.     AX = 0006h
  9147. SeeAlso: AX=0005h
  9148. --------r-E4---------------------------------
  9149. INT E4 - IBM ROM BASIC - used while in interpreter
  9150. Notes:    called by ROM BASIC
  9151.     BASIC.COM/BASICA.COM do not restore vector on termination
  9152. --------r-E5---------------------------------
  9153. INT E5 - IBM ROM BASIC - used while in interpreter
  9154. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9155.     BASIC.COM/BASICA.COM do not restore vector on termination
  9156. --------r-E6---------------------------------
  9157. INT E6 - IBM ROM BASIC - used while in interpreter
  9158. Notes:    called by ROM BASIC
  9159.     BASIC.COM/BASICA.COM do not restore vector on termination
  9160. --------r-E7---------------------------------
  9161. INT E7 - IBM ROM BASIC - used while in interpreter
  9162. Notes:    called by ROM BASIC
  9163.     BASIC.COM/BASICA.COM do not restore vector on termination
  9164. --------r-E8---------------------------------
  9165. INT E8 - IBM ROM BASIC - used while in interpreter
  9166. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9167.     BASIC.COM/BASICA.COM do not restore vector on termination
  9168. --------r-E9---------------------------------
  9169. INT E9 - IBM ROM BASIC - used while in interpreter
  9170. Notes:    called by ROM BASIC
  9171.     BASIC.COM/BASICA.COM do not restore vector on termination
  9172. --------r-EA---------------------------------
  9173. INT EA - IBM ROM BASIC - used while in interpreter
  9174. Notes:    called by ROM BASIC
  9175.     BASIC.COM/BASICA.COM do not restore vector on termination
  9176. --------r-EB---------------------------------
  9177. INT EB - IBM ROM BASIC - used while in interpreter
  9178. Notes:    called by ROM BASIC
  9179.     BASIC.COM/BASICA.COM do not restore vector on termination
  9180. --------r-EC---------------------------------
  9181. INT EC - IBM ROM BASIC - used while in interpreter
  9182. Notes:    called by ROM BASIC
  9183.     BASIC.COM/BASICA.COM do not restore vector on termination
  9184. --------N-EC---------------------------------
  9185. INT EC - used by Alloy NTNX
  9186. --------r-EC---------------------------------
  9187. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  9188.     AX = function number (0000h to 0140h)
  9189.     STACK:    DWORD address to return to
  9190.         any arguments required by function
  9191. Return: STACK:    return address popped, but otherwise unchanged
  9192. Desc:    this is the interface from applications to the runtime system by Exact
  9193.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  9194.       it can provide DLL-style capabilities under MS-DOS.
  9195. Note:    the interrupt handler removes the return address and flags placed on
  9196.       the stack by the INT EC, then jumps to the appropriate function
  9197. --------r-ED---------------------------------
  9198. INT ED - IBM ROM BASIC - used while in interpreter
  9199. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9200.     BASIC.COM/BASICA.COM do not restore vector on termination
  9201.     INT 80 through INT ED are modified but not restored by Direct Access
  9202.       v4.0, and may be left dangling by other programs written with the
  9203.       same version of compiled BASIC
  9204. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  9205. --------r-EE---------------------------------
  9206. INT EE - IBM ROM BASIC - used while in interpreter
  9207. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9208.     BASIC.COM/BASICA.COM do not restore vector on termination
  9209. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  9210. --------r-EF---------------------------------
  9211. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  9212. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  9213. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  9214. --------O-EF----CX0473-----------------------
  9215. INT EF - GEM - INTERFACE
  9216.     CX = 0473h
  9217.     DS:DX -> GEM parameter block
  9218. --------r-F0---------------------------------
  9219. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  9220. Note:    BASICA.COM does not restore vector on termination
  9221. SeeAlso: INT EF"BASIC"
  9222. --------*-F1---------------------------------
  9223. INT F1 - reserved for user interrupt
  9224. --------s-F1---------------------------------
  9225. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  9226.     DS:BX -> '$'-terminated text string
  9227. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  9228. --------s-F1---------------------------------
  9229. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  9230. SeeAlso: INT F2"SPEECH"
  9231. --------U-F1---------------------------------
  9232. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  9233. Return: AX:BX -> data area
  9234. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  9235.       and COM2 in software
  9236. Note:    The installation check consists of testing for the following signature
  9237.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  9238.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  9239.       version number
  9240. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  9241. --------v-F1---------------------------------
  9242. INT F1 - VIRUS - "Violetta" - ???
  9243. Note:    used but not chained by virus
  9244. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  9245. --------*-F2---------------------------------
  9246. INT F2 - reserved for user interrupt
  9247. --------s-F2---------------------------------
  9248. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  9249. SeeAlso: INT F1"SPEECH"
  9250. ----------F2---------------------------------
  9251. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  9252.     AH = function
  9253.         01h power up
  9254.         02h power down
  9255.         03h set controls
  9256.         04h capture image
  9257.         05h display image
  9258.         06h read file
  9259.         07h write file
  9260.         08h write array
  9261.         09h read pixel
  9262.         0Ah write pixel
  9263.         0Bh check if VGA present
  9264.         0Ch set video mode
  9265.         0Dh check for keystroke
  9266.         0Eh delay
  9267.     ???
  9268. Return: ???
  9269. Program: ImageCapture is a product of International Computers
  9270. SeeAlso: INT F3"ICCTSR"
  9271. --------*-F3---------------------------------
  9272. INT F3 - reserved for user interrupt
  9273. --------s-F3---------------------------------
  9274. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  9275. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  9276.       value selected with SET-ECHO.EXE
  9277. SeeAlso: INT 2F/AX=FBFBh
  9278. ----------F3---------------------------------
  9279. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  9280. Program: ImageCapture is a product of International Computers
  9281. SeeAlso: INT F2"ICCTSR"
  9282. --------*-F4---------------------------------
  9283. INT F4 - reserved for user interrupt
  9284. --------T-F4---------------------------------
  9285. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  9286. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  9287. --------*-F5---------------------------------
  9288. INT F5 - reserved for user interrupt
  9289. --------T-F5---------------------------------
  9290. INT F5 - DoubleDOS - ???
  9291. --------*-F6---------------------------------
  9292. INT F6 - reserved for user interrupt
  9293. --------T-F6---------------------------------
  9294. INT F6 - DoubleDOS - ???
  9295. --------*-F7---------------------------------
  9296. INT F7 - reserved for user interrupt
  9297. --------T-F7---------------------------------
  9298. INT F7 - DoubleDOS - ???
  9299. ----------F700-------------------------------
  9300. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  9301.     AH = 00h
  9302.     AL = function
  9303.         00h get configuration record
  9304.         Return: DS:DX -> configuration record
  9305.         01h set configuration record
  9306.         02h get path for option
  9307.         DS:DX -> option name
  9308.         Return: DS:DX -> path
  9309.         03h determine whether configuration record set
  9310.         Return: AX = status
  9311.                 0000h set
  9312.                 0001h not yet set
  9313.         04h get link state
  9314.         Return: AX = state
  9315.                 0000h unlinked
  9316.                 0001h linked
  9317. Notes:    this information is preliminary and still subject to change
  9318.     all of the INT F7 calls for FSBBS are used for interprogram
  9319.       communication between the BBS kernel and the programs it spawns
  9320. SeeAlso: AH=01h
  9321. ----------F701-------------------------------
  9322. INT F7 - FSBBS 2.0 - USER RECORD
  9323.     AH = 01h
  9324.     AL = function
  9325.         00h get user record for user currently online
  9326.         Return: DS:DX -> user record
  9327.         01h set user record
  9328.         DS:DX -> user record
  9329. SeeAlso: AH=00h,AH=02h
  9330. ----------F702-------------------------------
  9331. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  9332.     AH = 02h
  9333. Return: DS:DX -> 8-character blank-padded account name
  9334. SeeAlso: AH=01h
  9335. ----------F703-------------------------------
  9336. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  9337.     AH = 03h
  9338.     AL = function
  9339.         00h get terminal index number
  9340.         Return: DX = index number
  9341.         01h set terminal index number
  9342.         DX = terminal index
  9343. ----------F704-------------------------------
  9344. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  9345.     AH = 04h
  9346.     AL = function
  9347.         00h get PassData buffer contents
  9348.         DS:DX -> buffer for PassData contents
  9349.         01h set PassData contents
  9350.         DS:DX -> buffer containing new PassData
  9351.         CH = length of data in buffer
  9352. ----------F705-------------------------------
  9353. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  9354.     AH = 05h
  9355.     AL = function
  9356.         00h get time remaining
  9357.         Return: DX = number of minutes remaining
  9358.         01h get current time
  9359.         Return: DS:DX -> 8-character time string
  9360.         02h increment time
  9361.         DX = number of additional minutes
  9362.         03h decrement time
  9363.         DX = number of minutes
  9364. SeeAlso: AH=06h
  9365. ----------F706-------------------------------
  9366. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  9367.     AH = 06h
  9368.     AL = function
  9369.         00h determine whether function is available
  9370.         DX = index of function
  9371.         01h set function availability
  9372.         DX = index of function
  9373.         ???
  9374. SeeAlso: AH=05h,AH=07h
  9375. ----------F707-------------------------------
  9376. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  9377.     AH = 07h
  9378.     AL = function
  9379.         00h get current dump mode
  9380.         Return: DL = mode
  9381.         01h set dump mode
  9382.         DL = mode
  9383. SeeAlso: AH=06h
  9384. --------*-F8---------------------------------
  9385. INT F8 - reserved for user interrupt
  9386. --------h-F8---------------------------------
  9387. INT F8 - TANDY??? - 100 HZ INTERRUPT
  9388. SeeAlso: INT FA"USART"
  9389. --------T-F8---------------------------------
  9390. INT F8 - DoubleDOS - ???
  9391. --------*-F9---------------------------------
  9392. INT F9 - reserved for user interrupt
  9393. --------T-F9---------------------------------
  9394. INT F9 - DoubleDOS - ???
  9395. --------*-FA---------------------------------
  9396. INT FA - reserved for user interrupt
  9397. --------h-FA---------------------------------
  9398. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  9399. SeeAlso: INT F8"100 HZ",INT FB"USART"
  9400. --------T-FA---------------------------------
  9401. INT FA - DoubleDOS - TURN OFF TIMESHARING
  9402. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  9403. --------*-FB---------------------------------
  9404. INT FB - reserved for user interrupt
  9405. --------h-FB---------------------------------
  9406. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  9407. SeeAlso: INT FA"USART"
  9408. --------T-FB---------------------------------
  9409. INT FB - DoubleDOS - TURN ON TIMESHARING
  9410. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  9411. --------*-FC---------------------------------
  9412. INT FC - reserved for user interrupt
  9413. --------T-FC---------------------------------
  9414. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  9415. Return: ES = segment of display buffer
  9416. Desc:    determine the address of the virtual screen to which the program
  9417.       should write instead of the actual video memory, so that the
  9418.       multitasked programs do not interfere with each other's output
  9419. Note:    the display buffer may be moved if multitasking is enabled
  9420. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  9421. --------*-FD---------------------------------
  9422. INT FD - reserved for user interrupt
  9423. --------T-FD---------------------------------
  9424. INT FD - DoubleDOS - ???
  9425. --------S-FD---------------------------------
  9426. INT FD - TFPCX - INSTALLATION CHECK
  9427.     AH = function (see separate entries below)
  9428. Program: TFPCX is an interface between modem and terminal program for packet-
  9429.       radio communications
  9430. Notes:    the installation check consists of testing for the string "N5NX" three
  9431.       bytes beyond the interrupt handler; INT FD is the default, but may
  9432.       be changed, so the full installation check consists of scanning
  9433.       for the signature
  9434.     TFPCX returns AX=FFFFh on any unsupported function call
  9435. SeeAlso: AH=01h,AH=03h,AH=FEh
  9436. --------S-FD01-------------------------------
  9437. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  9438.     AH = 01h
  9439. Return: AX = status
  9440.         0000h no characters waiting
  9441.         0001h character available for input
  9442. Program: TFPCX is an interface between modem and terminal program for packet-
  9443.       radio communications
  9444. SeeAlso: AH=02h
  9445. --------S-FD02-------------------------------
  9446. INT FD - TFPCX - GET CHARACTER
  9447.     AH = 02h
  9448. Return: AL = character
  9449. Notes:    this call is only allowed if AH=01h indicated that a character is
  9450.       available
  9451.     all available characters should be read before sending any additional
  9452.       characters
  9453. SeeAlso: AH=01h,AH=03h
  9454. --------S-FD03-------------------------------
  9455. INT FD - TFPCX - OUTPUT CHARACTER
  9456.     AH = 03h
  9457.     AL = character to send
  9458. SeeAlso: AH=02h
  9459. --------S-FDFE-------------------------------
  9460. INT FD - TFPCX - GET VERSION
  9461.     AH = FEh
  9462. Return: AH = major version
  9463.     AL = minor version
  9464. Program: TFPCX is an interface between modem and terminal program for packet-
  9465.       radio communications
  9466. SeeAlso: AH=01h,AH=03h
  9467. --------B-FE---------------------------------
  9468. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  9469. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  9470.       is the last fourth of the interrupt vector table.  If the processor
  9471.       is returned to real mode via a hardware reset (the only possibility
  9472.       on an 80286, though there are a number of ways of generating one),
  9473.       then the BIOS startup code stacks three words on its scratch stack
  9474.       before determining that a return to real mode has been requested.
  9475.       As a result, INT FE and INT FF are corrupted.
  9476. SeeAlso: INT FF"XT286"
  9477. --------T-FE---------------------------------
  9478. INT FE - DoubleDOS - GIVE UP TIME
  9479.     AL = number of 55ms time slices to give away
  9480. Return: after other program (if active) has run
  9481. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  9482. --------G-FE---------------------------------
  9483. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  9484. SeeAlso: INT 3F
  9485. --------B-FF---------------------------------
  9486. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  9487. Note:    (see INT FE"XT286")
  9488. SeeAlso: INT FE"XT286"
  9489. --------b-FF---------------------------------
  9490. INT FF - Z100 - WARM BOOT
  9491. SeeAlso: INT 40"Z100"
  9492. --------Q-FF---------------------------------
  9493. INT FF U - QEMM-386.SYS v6.0+ - internal
  9494. Notes:    requires that a byte in the conventional-memory stub be set to the
  9495.       desired function number (00h through 0Ch)
  9496. --------v-FF---------------------------------
  9497. INT FF - VIRUS - "Violetta" - ???
  9498. Note:    used but not chained by virus
  9499. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  9500. --------!---FILELIST-------------------------
  9501. Please redistribute the following files unmodified as a group, in a trio of
  9502. archives named INTER36A through INTER36C (preferably the original authenticated
  9503. PKZIP archives):
  9504.     INTERRUP.1ST    the read-me file, containing credits, availability info
  9505.     INTERRUP.A    INT 00 through INT 14
  9506.     INTERRUP.B    INT 15 through INT 15
  9507.     INTERRUP.C    INT 16 through INT 21/41
  9508.     INTERRUP.D    INT 21/42 through INT 21/7F
  9509.     INTERRUP.E    INT 21/80 through INT 21/FF
  9510.     INTERRUP.F    INT 22 through INT 2F/7F
  9511.     INTERRUP.G    INT 2F/80 through INT 2F/FF
  9512.     INTERRUP.H    INT 30 through INT 5F
  9513.     INTERRUP.I    INT 60 through INT 67
  9514.     INTERRUP.J    INT 68 through INT FF
  9515.     INTERRUP.PRI    a brief introduction to interrupts
  9516.     INTPRINT.COM    a simple formatter that also generates a list summary
  9517.     INTPRINT.DOC    instructions for INTPRINT
  9518.     86BUGS.LST    a listing of CPU bugs and undocumented features
  9519.     CMOS.LST    a description of the CMOS RAM data bytes
  9520.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  9521.     MEMORY.LST    format of the BIOS data area
  9522.     PORTS.LST    a listing of I/O ports
  9523.     COMBINE.BAT    combine the pieces of the list into a single file
  9524. The following files should be distributed in an archive called INTER36D:
  9525.     INT.COM        invoke interrupts from commandline
  9526.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  9527.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  9528.     INT2QH.*    program to convert list into QuickHelp database
  9529.     INTERVUE.EXE    indexed interrupt list browser
  9530.     INTHELP.*    convert list into TurboPower GUIDE database
  9531.     INTLIST.E    Epsilon extension for handling list
  9532.     INTLIST.ICO    Windows icon for INTERVUE
  9533.     INTPRINT.C    source code for INTPRINT
  9534.     RB2NG.*        convert list into Norton Guides database
  9535. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  9536. --------!---CONTACT_INFO---------------------
  9537. Internet: ralf@telerama.pgh.pa.us
  9538. UUCP: {uunet,harvard}!telerama.pgh.pa.us!ralf
  9539. FIDO: Ralf Brown 1:129/26.1
  9540.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  9541.     unless you address it to me)
  9542. CIS:  >INTERNET:ralf@telerama.pgh.pa.us
  9543.